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

标签 java spring hibernate spring-data

如果我的实体有计算字段,应该在保存到数据库之前更新(db insertupdate), 如何在 Hibernate 或 Spring Data Repository save() 之前 Hook 方法调用?

最佳答案

我认为对你来说最好的选择是 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进一步引用

关于java - onSave()(对于使用 Hibernate/Spring Data Repositories 保存的任何实体),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37863178/

相关文章:

java - Java 中的意外结果( float 为整数)

java - 如何在 JAVA 泛型类型中定义使用 2 个泛型参数扩展 Map 对象?

java - 确定 Spring Bean 可用的属性?

java - 刷新时出现 NullPointerException [Java EE + Hibernate 4. 3.5]

java - 如何防止在 Jetty 中列出目录?

java - 基于编辑文本输入的微调器值

java - 使用 oauth2 + JWT 进行 Spring Boot 社交登录

使用 jobLauncherTestUtils 进行 Spring 批量集成测试

java - Hibernate 'join' 获取奇怪的行为

java - Servlet MultipartConfig 参数