问题说明:
使用通用mapper里的insert方法,在未插入主键时且实体类@Tableid注解的Type属性为IdType.INPUT时,insert方法报错
报错信息:
Error setting null for parameter #1 with JdbcType OTHER . Try setting a different JdbcType for this
尝试的解决办法:
1.查看实体类属性类型是否与对应数据库字段类型一致
2.数据库表是否设置主键自增
3.查看参数是否传的不对(参数名对不上)
耗时2小时,以上方法均未解决我的问题
最终解决的办法:
将实体类中主键的@Tableid注解的Type属性,修改为IdType.ID_WORKER_STR,问题解决
原因分析:
总的来说报错的原因是因为:
IdType.INPUT属性是手动输入主键,而我在使用insert方法时未给主键设值,插入的主键值为空所以报错。
当需要使用MP自动生成主键时,则应使用ID_WORKER、UUID、ID_WORKER_STR等其它属性。