当前使用版本(必填,否则不予处理)
implementation("com.baomidou:mybatis-plus-boot-starter:3.4.3.4")
该问题是如何引起的?(确定最新版也有问题再提!!!)
最新版也有问题,不清楚是怎么引起的。
重现步骤(如果有就写完整)
open class BaseDomain(
@field:TableField(fill = FieldFill.INSERT)
var create_at: Date? = null,
@JsonIgnore
@field:TableField(fill = FieldFill.INSERT_UPDATE)
var update_at: Date? = null,
@TableLogic
@JsonIgnore
var deleted: Int? = null
) {
}
@Component
class MyMetaObjectHandler : MetaObjectHandler {
override fun insertFill(metaObject: MetaObject) {
LOGGER.info("start insert fill ....")
this.strictInsertFill(metaObject, "create_at", { LocalDateTime.now() }, LocalDateTime::class.java) // 起始版本 3.3.3(推荐)
this.strictInsertFill(metaObject, "update_at", { LocalDateTime.now() }, LocalDateTime::class.java) // 起始版本 3.3.3(推荐)
}
override fun updateFill(metaObject: MetaObject) {
LOGGER.info("start update fill ....")
this.strictInsertFill(metaObject, "update_at", { LocalDateTime.now() }, LocalDateTime::class.java) // 起始版本 3.3.3(推荐)
}
companion object {
private val LOGGER = LoggerFactory.getLogger(MyMetaObjectHandler::class.java)
}
}
更新方法是updateById:
order.express_no = express_no
order.delivery_time = Date()
bOrderMapper.updateById(order)
报错信息
其中 start update fill ....的日志是执行了的,但是数据库的update_at数据并没有更新,很奇怪。
Comment From: miemieYaho
数据类型不匹配
Comment From: junixapp
我改成了Date仍然不生效
override fun updateFill(metaObject: MetaObject) {
LOGGER.info("start update fill ....")
this.setFieldValByName("update_at", Date(), metaObject)
}