使用Spring / Hibernate审核实体

时间:2018-12-27 06:50:28

标签: java spring hibernate spring-boot

我有一个表T_TEST,并且已经为其创建了一个实体。我需要在T_TEST_AUDIT中对该实体的所有DBL操作进行审计。

我该怎么做。

我正在使用Sprng-boot / Hibernate。 我浏览了很多在线教程并尝试实现它,但没有一个适合我的情况

我浏览了很多在线教程并尝试实现它,但是没有一个适合我的情况。

我只能在T_TEST中插入记录,而不能在T_TEST_AUDIT中插入

input

1 个答案:

答案 0 :(得分:2)

使用hibernate-envers。集成起来真的很容易。您要审核的实体(即维护其历史记录)将使用@Audited进行注释。 Hibernate将创建一个单独的审核表,并为每个更新/插入/删除在其中插入一行。

Maven依赖项:

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-envers</artifactId>
</dependency>

示例:

@Audited
public class Zoo implements Serializable {

  private String name;
  private String address;

  @OneToMany(mappedBy = "zoo", cascade = CascadeType.ALL, fetch = FetchType.LAZY, orphanRemoval = true)
  @NotAudited // incase you don't any field to be audited, annotate them with @NotAudited
  private List<Animals> animals;

  }