Java 如何触发@LastModifiedDate

Java 如何触发@LastModifiedDate,java,spring,spring-data,Java,Spring,Spring Data,我对这些字段进行了分类: private String statusMessage; @Column(name = "last_updated") @LastModifiedDate private Instant lastUpdatedAt; 我所做的是: 设置statusMessage字段 将对象保存到repo 一切正常,lastUpdatedAt用当前时间戳填充。 问题是每次将值设置为statusMessage时,我都想更新lastUpdatedAt

我对这些字段进行了分类:

    private String statusMessage;

    @Column(name = "last_updated")
    @LastModifiedDate
    private Instant lastUpdatedAt;
我所做的是:

  • 设置
    statusMessage
    字段
  • 将对象保存到repo
一切正常,
lastUpdatedAt
用当前时间戳填充。 问题是每次将值设置为
statusMessage
时,我都想更新
lastUpdatedAt
,即使我设置的值与
statusMessage
中已有的值相同


如何实现这一点?

您需要启用
Spring Data JPA Auditing
功能。要实现这一点,只需将注释添加到配置类:

@EnableJpaAuditing
如果不这样做,注释
@LastModifiedDate
将在实体中没有效果


希望有帮助

我将依靠数据库来管理它,mySQL和mariaDB有这个更新当前的时间戳的东西,这是非常整洁的。只是添加另一种方法;)我编辑了我的描述,因为它没有如实反映情况。每次将值设置为
statusMessage
时,我都会更新
lastUpdatedAt
,即使该值是相同的,您也需要通过编程强制执行此操作。如果它是这样工作的,我会说这是一个bug,因为您的实体不会脏,也不会持久化。无论如何,如果可能的话,我建议你避免这样做。小心。