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

mybatis-plus-boot-starter:3.1.2

该问题是如何引起的?(确定最新版也有问题再提!!!)

表字段update_time设置了”update_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP“,即在更新记录时时间也更新。我发现updateById方法直接使用了当前对象的updateTime字段更新了值,而不是使用数据库设置的。

重现步骤(如果有就写完整)

我先查询了数据,updateTime字段也被赋值了,然后我 调用com.baomidou.mybatisplus.extension.service.impl.ServiceImpl#updateById方法,希望updateTime字段的值依赖数据库设置,而应该忽略应层面的赋值。看是否可以在注解属性FieldStrategy.IGNORED上面下手,这种使用数据库层面的设置,最好是全局有设置。

不知道明白我的意思不?

报错信息

无报错。

Comment From: qmdx

更新实体属性 updateTime 不要赋值即可

Comment From: youngledo

更新实体属性 updateTime 不要赋值即可

这样当然可以,但之所以在数据库中设置此默认值,其目的就是希望应用层不应该干涉。另外更新方法肯定很多地方使用,不可能告知每个人都要去设置null。我希望能统一在注解上忽略。

Comment From: Sdky

我觉得,一般是要修改哪个字段就给哪个字段设值,这样 SQL 简洁,且不会覆盖原来的数据。