如果我的实体已计算字段应在保存到数据库之前更新(db insert
或update
)
如何在Hibernate或Spring Data Repository save()
答案 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以获取进一步参考