【发布时间】:2016-10-18 04:56:56
【问题描述】:
如果我的实体有计算字段应该在保存到数据库之前更新(db insert 或 update),
如何在 Hibernate 或 Spring Data Repository save() 之前挂钩方法调用?
【问题讨论】:
标签: java spring hibernate spring-data
如果我的实体有计算字段应该在保存到数据库之前更新(db insert 或 update),
如何在 Hibernate 或 Spring Data Repository save() 之前挂钩方法调用?
【问题讨论】:
标签: java spring hibernate spring-data
我认为最适合您的选择是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 以获取更多参考
【讨论】:
@EntityListeners 注释的情况下对所有实体执行此操作。