Java onSave()(适用于使用Hibernate/Spring数据存储库保存的任何实体)
如果我的实体有计算字段,则应在保存到数据库之前更新字段(dbJava onSave()(适用于使用Hibernate/Spring数据存储库保存的任何实体),java,spring,hibernate,spring-data,Java,Spring,Hibernate,Spring Data,如果我的实体有计算字段,则应在保存到数据库之前更新字段(dbinsert或update), 如何在Hibernate或Spring数据存储库save()?我认为最适合您的方法是EntityListener使用@PrePersist和@PreUpdate注释,为您的实体侦听器创建配置,您将获得对要保存的每个实例的访问权限,每次尝试使用hibernate或spring数据存储库持久化或更新某些内容时,都会调用此方法 public class EntityToPersistListener{
insert
或update
),
如何在Hibernate或Spring数据存储库
save()
?我认为最适合您的方法是EntityListener
使用@PrePersist
和@PreUpdate
注释,为您的实体侦听器创建配置,您将获得对要保存的每个实例的访问权限,每次尝试使用hibernate或spring数据存储库持久化或更新某些内容时,都会调用此方法
public class EntityToPersistListener{
@PrePersist
@PreUpdate
public void methodExecuteBeforeSave(final EntityToPersist reference) {
//Make any change to the entity such as calculation before the save process
reference.setAmount(xxxx)
}
}
您只需要在实体bean上方添加注释
@Entity
@Table(name = "", schema = "", catalog = "")
@EntityListeners(EntityToPersistListener.class)
public class EntityToPersist implements Serializable {
检查此项以供进一步参考太好了。剩下的唯一一种情况是,在不添加
@EntityListeners
注释的情况下,如何为所有实体这样做。我认为您需要为每个实体定义侦听器,因为它们将在方法中接收对象,但还有一个orm.xml文件,您可以在其中定义侦听器和审核。