【发布时间】:2016-07-26 20:23:09
【问题描述】:
我正在尝试在 JPA 实体上实现 默认侦听器。我读过几篇文章,所有文章都提到:
目前,只能在映射 XML 中指定默认侦听器 文件,因为没有等效的注释
我们是否有任何解决方法可以在不使用 XML 文件的情况下实现 默认侦听器。
使用:Spring Boot、Spring Data JPA -(Java 配置)
【问题讨论】:
标签: java spring jpa spring-boot jpa-2.1
我正在尝试在 JPA 实体上实现 默认侦听器。我读过几篇文章,所有文章都提到:
目前,只能在映射 XML 中指定默认侦听器 文件,因为没有等效的注释
我们是否有任何解决方法可以在不使用 XML 文件的情况下实现 默认侦听器。
使用:Spring Boot、Spring Data JPA -(Java 配置)
【问题讨论】:
标签: java spring jpa spring-boot jpa-2.1
您可以通过这种方式将您的侦听器添加到您的实体主体中:
@Entity
public class MyEntity{
//attributes & getters and setters
@PrePersist void onPrePersist() {}
@PostPersist void onPostPersist() {}
@PostLoad void onPostLoad() {}
@PreUpdate void onPreUpdate() {}
@PostUpdate void onPostUpdate() {}
@PreRemove void onPreRemove() {}
@PostRemove void onPostRemove() {}
}
或这样使用@EntityListeners注解:
@Entity
@EntityListeners({MyListener1.class, MyListener2.class})
public class MyEntity {
}
还有:
public class MyListener1 {
@PrePersist void onPrePersist(Object o) {}
@PostPersist void onPostPersist(Object o) {}
@PostLoad void onPostLoad(Object o) {}
@PreUpdate void onPreUpdate(Object o) {}
@PostUpdate void onPostUpdate(Object o) {}
@PreRemove void onPreRemove(Object o) {}
@PostRemove void onPostRemove(Object o) {}
}
【讨论】:
@EntityListener