当前使用版本(必填,否则不予处理)
3.4.3.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
重现步骤(如果有就写完整)
mp默认策略:使用自动填充功能时,属性有值则不覆盖。
场景:对数据库查询出来的一条数据进行更新(全字段查询,包括updateTime),第一次更新,updateTime没有值,可以自动填充。后面继续对这条数据进行查询并更新,updateTime已经有值了,mp默认策略不会覆盖之前的值。
请教:自动填充时如何控制是否覆盖实体对象原有的值。
伪代码如下:
// 自动填充实现类
@Component
public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
this.strictInsertFill(metaObject, "createdTime", Date.class, new Date());
}
@Override
public void updateFill(MetaObject metaObject) {
this.strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
}
}
// 实体类
public class CustomEntity {
@TableField(fill = FieldFill.INSERT)
private Date createdTime;
@TableField(fill = FieldFill.UPDATE)
private Date updateTime;
}
// 更新语句
IService.updateById(entity);
或其它更新语句 IService.update......
报错信息
Comment From: miemieYaho
点开看一下调用链就知道了
Comment From: yangsenlin01
懂了,谢谢