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⊙)…
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)