Java onSave()(适用于使用Hibernate/Spring数据存储库保存的任何实体)

Java 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{

如果我的实体有计算字段,则应在保存到数据库之前更新字段(db
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文件,您可以在其中定义侦听器和审核。