我有一个表T_TEST,并且已经为其创建了一个实体。我需要在T_TEST_AUDIT中对该实体的所有DBL操作进行审计。
我该怎么做。
我正在使用Sprng-boot / Hibernate。 我浏览了很多在线教程并尝试实现它,但没有一个适合我的情况
我浏览了很多在线教程并尝试实现它,但是没有一个适合我的情况。
我只能在T_TEST中插入记录,而不能在T_TEST_AUDIT中插入
input
答案 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;
}