当前使用版本(必填,否则不予处理)
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 简洁,且不会覆盖原来的数据。