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,因为您的实体不会脏,也不会持久化。无论如何,如果可能的话,我建议你避免这样做。小心。