Error updating database. Cause: java.sql.SQLException: errCode = 2, detailMessage = Insert has filtered data in strict mode.

Viewed 40

mybatis生成的insert语句没有id,但是其他模块相同的代码可以插入成功

2 Answers

原因找到了,主要是mybatisplus主键生成策略的问题,总结如下:
一、表主键未设置AUTO_INCREMENT
1)mybatisplus 未全局配置mybatis-plus.global-config.db-config.id-type
@TableId(value = "id", type = IdType.AUTO)
去掉type按雪花id生成insert sql

2)mybatisplus 全局配置mybatis-plus.global-config.db-config.id-type=AUTO
@TableId(value = "id", type = IdType.x) 或@TableId(value = "id")
全局配置>局部配置 insert失败

二、表主键设置AUTO_INCREMENT
1)mybatisplus 未全局配置mybatis-plus.global-config.db-config.id-type
@TableId(value = "id")
按雪花id生成insert sql

2)mybatisplus 全局配置mybatis-plus.global-config.db-config.id-type=AUTO
@TableId(value = "id")
按自然序id生产id

@TableId(value = "id", type = IdType.ASSIGN_ID)
按雪花id生成insert sql