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

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)
    }