JPA:跟踪实体演变/变化的想法

时间:2011-01-28 07:29:49

标签: java jpa

我想知道有没有简单的方法来实现跟踪实体的变化? 有来自Hibernate的Envers进行审计,但据我所知,它以Hibernate为导向。我在想如果JPA中有什么东西,或者是一个没有超出规范的解决方案。 如果还没有,有人可能会让我知道如何开始这种事情。我想到的一个想法是创建一个实体,例如:

class Change {
  String className;
  long id;
  String fieldName;
  String fieldValue;
  Date dateOfChange;
}

其中包含已更改的属性。这个解决方案在存储空间方面似乎非常有效,但处理被跟踪的实体之间的关系可能会更加困难(但还没有想到)。

我非常感谢本主题中的任何输入,

亲切的问候, P上。

1 个答案:

答案 0 :(得分:4)

您可以使用@PrePersist注释创建条目并将其存储到数据库中。

class Entity{

    @PrePersist
    public void logChanges(){
        Change c = new Change()
        c.setEverythingXouLikeToLog();

        entityManager.persist(c);
        // don't forget ExceptionHandling
    }

}