我想知道有没有简单的方法来实现跟踪实体的变化? 有来自Hibernate的Envers进行审计,但据我所知,它以Hibernate为导向。我在想如果JPA中有什么东西,或者是一个没有超出规范的解决方案。 如果还没有,有人可能会让我知道如何开始这种事情。我想到的一个想法是创建一个实体,例如:
class Change {
String className;
long id;
String fieldName;
String fieldValue;
Date dateOfChange;
}
其中包含已更改的属性。这个解决方案在存储空间方面似乎非常有效,但处理被跟踪的实体之间的关系可能会更加困难(但还没有想到)。
我非常感谢本主题中的任何输入,
亲切的问候, P上。
答案 0 :(得分:4)
您可以使用@PrePersist
注释创建条目并将其存储到数据库中。
class Entity{
@PrePersist
public void logChanges(){
Change c = new Change()
c.setEverythingXouLikeToLog();
entityManager.persist(c);
// don't forget ExceptionHandling
}
}