Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 维持对少数实体审计的更好方法_Java_Audit_Hibernate Envers - Fatal编程技术网

Java 维持对少数实体审计的更好方法

Java 维持对少数实体审计的更好方法,java,audit,hibernate-envers,Java,Audit,Hibernate Envers,我有一个具有以下结构的Hibernate实体: @Entity public class A { private Integer id; private String name; @OneToMany private List<B> bList; } @Entity public class B { private Integer id; @OneToMany private List<C> cList; } 在fieldsChanged列

我有一个具有以下结构的Hibernate实体:

@Entity
public class A
{
  private Integer id;
  private String name;
  @OneToMany
  private List<B> bList;
}

@Entity
public class B
{
  private Integer id;
  @OneToMany
  private List<C> cList;
}
fieldsChanged
列中,我需要实体A的列名称,以及实体B或C中是否应用了任何更改

现在,我在谷歌上找到了以下几种实现这些目标的方法:

  • 数据库上的Writer触发器
  • 拥有维护历史记录表的Java逻辑
  • 使用HibernateEnvers
  • 现在我不确定从上面或其他方面看什么是更好的方法


    如果您有任何建议,我们将不胜感激……

    Envers使用不同的审核方案—为每个更改存储实体的完整内容。答案取决于你需要什么

  • 如果直接从各种系统访问数据库,并且使用各种语言编写,则是正确的选择
  • 如果你需要你所写的结构,这是最好的
  • 提供审核,但格式不同

  • Envers使用不同的审核方案—存储每个更改的实体的完整内容。答案取决于你需要什么

  • 如果直接从各种系统访问数据库,并且使用各种语言编写,则是正确的选择
  • 如果你需要你所写的结构,这是最好的
  • 提供审核,但格式不同
  • historyDate | fieldsChanged | updatedBy | createdBy