Hibernate 实体(父子实体)之间的共享插入/更新日期

Hibernate 实体(父子实体)之间的共享插入/更新日期,hibernate,spring-data-jpa,jpa-2.0,Hibernate,Spring Data Jpa,Jpa 2.0,每个my entities表都有一个时间戳列,用于保存创建日期或上次更新日期 spring data、jpa和hibernate是否有一种简单的方法可以在事务中的所有持久化对象中插入相同的日期,而无需手动将其设置到每个对象。我将编写并绑定一个可以设置日期的org.hibernate.event.spi.PreInsertEventListener。您可能需要让您的实体实现一个公开setDate方法的公共接口,因为PreInsertEvent仅公开对象 您还可以实现org.hibernate.ev

每个my entities表都有一个时间戳列,用于保存创建日期或上次更新日期


spring data、jpa和hibernate是否有一种简单的方法可以在事务中的所有持久化对象中插入相同的日期,而无需手动将其设置到每个对象。

我将编写并绑定一个可以设置日期的
org.hibernate.event.spi.PreInsertEventListener
。您可能需要让您的实体实现一个公开
setDate
方法的公共接口,因为
PreInsertEvent
仅公开
对象

您还可以实现
org.hibernate.event.spi.PreUpdateEventListener
,方法与更新日期相同


在获取日期访问权限方面,您可以在事务开始时在本地线程上设置日期,然后在侦听器中访问日期。

如果您使用的是JPA API,请查看@PrePersist annotation。这需要在实体中的方法上(子实体或为了更好地使用,创建一个基本实体并将其放在那里)

@PrePersist
public void prePersist() {
if(createDate == null) {
    createDate = new Date();
}
updateDate = new Date();
}