白鹿洞
2020-01-17 16:37
@Slf4j @Component public class MyMetaObjectHandler implements MetaObjectHandler { @Override public void insertFill(MetaObject metaObject) { log.warn(" ==> start insert fill ...."); this.strictInsertFill(metaObject, "createTime", LocalDateTime.class, LocalDateTime.now()); } @Override public void updateFill(MetaObject metaObject) { log.warn(" ==> start update fill ...."); this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); } }
刚才看了一下mp3.3.0 MetaObjectHandler类的源码。strictInsertFill和strictUpdateFill是3.3.0新增的方法,它把
setInsertFieldValByName方法标识为过期方法了,并建议用strictInsertFill替代。
setUpdateFieldValByName方法也标识为过期方法了,并建议使用strictUpdateFill替代。
楼上说的是正确的,3.4.1的版本(不知道之后的版本有没有修改用法)方法需要先执行一步把原值设成NULL,现在的,原代码中就是提示原值不为NULL则不会更新
var ut = getFieldValByName("updateTime", metaObject); if (ut != null) { metaObject?.setValue("updateTime", null) //7.填充更新时间 strictUpdateFill(metaObject, "updateTime", LocalDateTime::class.java, LocalDateTime.now()) }
@Override public void updateFill(MetaObject metaObject) { this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now()); }使用strictUpdateFill()方法,跟新数据库中的update_time时间更新不了。
MyBatis-Plus进阶
23296 学习 · 118 问题
相似问题