【发布时间】:2016-05-04 11:49:49
【问题描述】:
假设我有这个课程:
@EntityListeners({MyListener.class})
class MyClass {
String name;
String surname;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSurname() {
return name;
}
public void setSurname(String name) {
this.name = name;
}
}
MyListener 类将如下所示:
public class MyListener {
private static final Logger log = Logger.getLogger(MyListener.class.getName());
public MyListener() {
}
@PostPersist
@PostUpdate
@PostRemove
public void onPostPersist(MyClass object) {
log.fine("Firing changed entity event");
}
}
MyListener 类中的 onPostPersist() 方法将在 MyClass 实例字段更改时被调用。
有没有可能发现这个方法因为特定的字段变化而被调用了?
例如: 如果我单独更改 name 字段,我应该能够发现 name 字段在最后一次持久化中已更改。
一种通过与审计比较来检查的方法。
如果可以的话,我想知道改变方法。
谢谢
【问题讨论】:
-
一种方法是使用@PostLoad 侦听器存储对实体副本的引用。然后,您可以在更新时对此进行比较。见这里stackoverflow.com/a/26535005/1356423
标签: java hibernate jpa entitylisteners