当前使用版本(必须填写清楚,否则不予处理)

V3.3.1

该问题是怎么引起的?(最新版上已修复的会直接close掉)

1.配置了一个基础实体类,里面定义了四个自动填充属性; MyBatis-Plus 自动填充字段的值为Null时insert、update语句中不添加对应的列 2.分别有两个实体类继承这个类,其中User对象需要自动填充这四个属性,Org类不需要(而且Org表没有这四个字段),我想通过一个类注解(@AutoFill)来区别这两种情况; MyBatis-Plus 自动填充字段的值为Null时insert、update语句中不添加对应的列 3.在自定义的MetaObjectHandler中进行判断,添加了AutoFill注解的才设置这四个字段的值,其他情况下这四个字段为Null; MyBatis-Plus 自动填充字段的值为Null时insert、update语句中不添加对应的列 4.现在碰到的问题是,Org类在insert数据时,虽然这四个字段为Null,但是语句中还有这四个字段。

问题:我要怎么配置才能在自动填充字段为Null时sql语句中不列出这些字段呢?

重现步骤

报错信息

Comment From: miemieYaho

不能,需要填充代表对应情况下有值,填充是在ognl解析完之后执行sql之前进行的,不管有没有值sql就已经确定了的

Comment From: thinsstar

这个不太合理啊,如果我要记录b端最后修改人的信息,但是这张表有可能是c端人员也会更新(例如库存信息等),自动注入时,c端操作就变成null了