onSave()(用于使用Hibernate / Spring Data Repositories保存的任何实体)

时间:2016-06-16 15:16:42

标签: java spring hibernate spring-data

如果我的实体已计算字段应在保存到数据库之前更新(db insertupdate) 如何在Hibernate或Spring Data Repository save()

之前挂钩方法调用

1 个答案:

答案 0 :(得分:16)

我认为最好的选择是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 {

检查此link以获取进一步参考