为了账号安全,请及时绑定邮箱和手机立即绑定

mybatis-plus3.3.0自动填充方法有改变?

@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());
    }
}


正在回答

3 回答

刚才看了一下mp3.3.0 MetaObjectHandler类的源码。strictInsertFill和strictUpdateFill是3.3.0新增的方法,它把

setInsertFieldValByName方法标识为过期方法了,并建议用strictInsertFill替代。
setUpdateFieldValByName方法也标识为过期方法了,并建议使用strictUpdateFill替代。


1 回复 有任何疑惑可以回复我~
#1

白鹿洞 提问者

谢谢老师的建议,我的写法是否正确?
2020-01-19 回复 有任何疑惑可以回复我~
#2

老猿 回复 白鹿洞 提问者

不客气同学,你的写法正确。
2020-01-19 回复 有任何疑惑可以回复我~

楼上说的是正确的,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())
}


0 回复 有任何疑惑可以回复我~
#1

芳心纵火犯GG

我这是KOTLIN的写法, 代码贴入IDEA可以自动翻译成JAVA
2021-01-16 回复 有任何疑惑可以回复我~
@Override
public void updateFill(MetaObject metaObject) {
   this.strictUpdateFill(metaObject, "updateTime", LocalDateTime.class, LocalDateTime.now());
}
使用strictUpdateFill()方法,跟新数据库中的update_time时间更新不了。

http://img1.sycdn.imooc.com//5ee6cd1900017c5518990765.jpg

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

mybatis-plus3.3.0自动填充方法有改变?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信