首页 > 数据库技术 > 详细

主键是integer类型 数据库设置了主键自增,但是还是报错 Could not set property 'id' xxx of 'class argument type mismatch

时间:2020-02-20 11:58:07      阅读:778      评论:0      收藏:0      [点我收藏+]

这个是因为,id没法插入,因为虽然数据库中已经设置了 主键并自增,但是 使用注解的实体,还需要另外额外的配置才行:

解决办法:在主键上面加入下面的注解。

 

@TableId(value = "id",type= IdType.AUTO)

如果把主键的类型由integer改成int类型也可以实现 ,但是看同事的代码都是还用的integer类型。

百度了一下为什么要使用integer 

2,使用包装类的好处

a),当我们不想给这个属性设置任何值的时候,我们可以给它一个null值(前提是数据库的字段允许插入NULL)。

b),我们可以在pojo类中使用验证注解对属性的值做校验(例如: javax.validation.constraints.NotNull)

 

4,两者在实际开发中的比较

a),如果你的数据库字段是允许为空的,使用包装类。如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常。然后你就可以对异常进行捕获并处理。

b),使用基本数据类型的时候,如果字段是NULL,那么JDBC会返回0,但是这里会有一个问题。有可能0在你的业务逻辑代表着特定含义,这时候就可能出现一些意想不到的后果

主键是integer类型 数据库设置了主键自增,但是还是报错 Could not set property 'id' xxx of 'class argument type mismatch

原文:https://www.cnblogs.com/ctrlMusic/p/12334656.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!