栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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⊙)…

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/693089.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号