启动类加入
@EnableMPP
@EnableKeyGen
@EnableAutoFill
TableInfoHelper DEFAULT_ID_NAME 默认id为主键
所以会出现
Caused by: java.lang.RuntimeException: not found column for id
at com.github.jeffreyning.mybatisplus.base.SelectByMultiIdMethod.getCol(SelectByMultiIdMethod.java:32)
at com.github.jeffreyning.mybatisplus.base.SelectByMultiIdMethod.createWhere(SelectByMultiIdMethod.java:42)
at com.github.jeffreyning.mybatisplus.base.SelectByMultiIdMethod.injectMappedStatement(SelectByMultiIdMethod.java:64)
1、Entity 原有id 名称 改 id1
2、Entity 使用 @MppMultiId
3、Mapper 使用 MppBaseMapper
4、IService 使用 IMppService
5、ServiceImpl 使用 MppServiceImpl
6、插入更新 使用saveOrUpdateByMultiId
原id加入注解
@TableField(value = "id",fill= FieldFill.INSERT)
@InsertFill("select replace(newid(),'-','')")
不生效的会出现
Cannot insert the value NULL into column 'id', table 'jeecg-boot-new.dbo.XXX'; column does not allow nulls. INSERT fails
所以需要添加注解
@EnableAutoFill
本文介绍了在使用MyBatisPlus时遇到的由于启用@EnableMPP、@EnableKeyGen和@EnableAutoFill注解导致的问题。当TableInfoHelper默认ID为主键,但在尝试插入数据时因找不到对应列而引发异常。解决方案包括更改Entity的ID名称,使用@MppMultiId注解,配合MppBaseMapper、IMppService和MppServiceImpl。另外,针对插入更新时的ID填充问题,启用@EnableAutoFill注解并未生效,最终仍需手动添加@TableField注解以指定ID填充方式。
1353

被折叠的 条评论
为什么被折叠?



