argument type mismatch(注解@TableId(value = “id“,type = IdType.AUTO) 和 @TableField)

argument type mismatch(注解@TableId(value = “id“,type = IdType.AUTO) 和 @TableField),第1张

argument type mismatch(注解@TableId(value = “id“,type = IdType.AUTO) 和 @TableField) 问题一:

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: Could not set property ‘id’ of ‘class com.example.finalspringsecurity.entity.Log’ with value ‘1476725931937652738’ Cause: java.lang.IllegalArgumentException: argument type mismatch;

原因:我在数据库里面设置log表的id字段是自增的,进行插入测试也没有问题;但是在对应的实体bean的id字段没有设置自增,导致值是由虚拟机分配的,然后分配的值有不满足我定义的类型,所有出现了类型不匹配的原因;
解决办法:id字段添加注解@TableId(value = “id”,type = IdType.AUTO)

SELECt * FROM LOG   
INSERT INTO `log` ( username, flag,ip,create_time )
VALUES
( 'lyq', '0', '12345678','依存'); 


顺带解释下一下两个注解:
@TableId(value = “id”,type = IdType.AUTO)
value映射主键字段的名字,type设置主键的类型 主键生成策略;
使用场景:数据库中的主键字段名字uid和实体中对应的字段名字id不一致,需要使用这个字段设置对应,AUTO设置为从0自增;

@TableField(value = “name”,exist = true)
非主键字段使用,比如数据库中的表名字为name,实体类为username,则需要在实体类上添加这个注解@TableField(value = “name”);exist = true表示为数据库中的字段,false的话表示非数据库字段;

问题二:

@TableField(value = “1”)没有正确使用,导致我这个字段属性设置为默认值为1;不管数据库中是什么值;(⊙o⊙)…

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5693554.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存