Closed Jinyilong closed 1 year ago
@Override
public void updateFill(MetaObject metaObject) {
// 有更新时间,则以当前时间为更新时间
if (metaObject.hasGetter("updateTime")) {
setFieldValByName("updateTime", LocalDateTime.now(), metaObject);
}
// 当前登录用户不为空,有更新人 ,则当前登录用户为更新人
Long userId = WebFrameworkUtils.getLoginUserId();
if (Objects.nonNull(userId) && metaObject.hasGetter("updater")) {
setFieldValByName("updater", userId.toString(), metaObject);
}
}
不是应该这样么
updateVO删除这个字段,入参不传就行了吧(我的理解是:有可能有需求就是需要手动改时间,方便区分吧)
updateVO删除这个字段,入参不传就行了吧(我的理解是:有可能有需求就是需要手动改时间,方便区分吧)
orderDO 继承 BaseDo BaseDo 里面有 updateTime
updateVO删除这个字段,入参不传就行了吧(我的理解是:有可能有需求就是需要手动改时间,方便区分吧)
orderDO 继承 BaseDo BaseDo 里面有 updateTime
这是查询吧,写入的时候reqVO(updateVO、createVO)里面不带updateTime就行,或者手动把这个字段设置为null
orderMapper.updateById
updateVO删除这个字段,入参不传就行了吧(我的理解是:有可能有需求就是需要手动改时间,方便区分吧)
orderDO 继承 BaseDo BaseDo 里面有 updateTime
这是查询吧,写入的时候reqVO(updateVO、createVO)里面不带updateTime就行,或者手动把这个字段设置为null
orderMapper.updateById 不是更新么 我现在手动设置字段设置为null 不是跟他自动更新的含义冲突了么
orderMapper.updateById
updateVO删除这个字段,入参不传就行了吧(我的理解是:有可能有需求就是需要手动改时间,方便区分吧)
orderDO 继承 BaseDo BaseDo 里面有 updateTime
这是查询吧,写入的时候reqVO(updateVO、createVO)里面不带updateTime就行,或者手动把这个字段设置为null
orderMapper.updateById 不是更新么 我现在手动设置字段设置为null 不是跟他自动更新的含义冲突了么
更新的时候不会有这个字段就自动更新,如果有这个字段就意味着你想要手动设置就用传入的值去更新;你看一下项目里面的XXXUpdateVO和XXXCreateReqVO里面不会有updateTime字段(比如UserUpdateReqVO)
orderMapper.updateById
updateVO删除这个字段,入参不传就行了吧(我的理解是:有可能有需求就是需要手动改时间,方便区分吧)
orderDO 继承 BaseDo BaseDo 里面有 updateTime
这是查询吧,写入的时候reqVO(updateVO、createVO)里面不带updateTime就行,或者手动把这个字段设置为null
orderMapper.updateById 不是更新么 我现在手动设置字段设置为null 不是跟他自动更新的含义冲突了么
更新的时候不会有这个字段就自动更新,如果有这个字段就意味着你想要手动设置就用传入的值去更新;你看一下项目里面的XXXUpdateVO和XXXCreateReqVO里面不会有updateTime字段(比如UserUpdateReqVO)
所以这两个字段为什么要手动设置
1、do 自动设置的逻辑是,如果业务(Service)没有主动设置,则进行自动设置。如果业务设置了,就不覆盖。 2、不要直接从 db 查询到 do,然后在用这个 do 去 update,而是要 new 一个 do 出来去 update 想要的属性。
碰到问题,请在 https://github.com/YunaiV/ruoyi-vue-pro/issues 搜索是否存在相似的 issue。
不按照模板提交的 issue,会被系统自动删除。
基本信息
你猜测可能的原因
(必填)我花费了 2-4 小时自查,发现可能的原因是:xxxxxx
复现步骤
第一步, 我使用 mysql-plus 更新的方法 orderMapper.updateById(orderDO);
第二步,
updater 和 update_time 没有进行自动更新 第三步, 通过debug 排查到updateFill 这个方法
为什么为空才进行更新? 既然是更新操作 那本来就肯定有值啊 现在为空才更新 不是更新了一个寂寞么
报错信息
带上必要的截图