Java 使用Spring/hibernate审核实体
我有一个表T_TEST。我已经为它创建了一个实体。我需要在T_TEST_audit中审核这个实体上的所有DBL操作 我该怎么做呢 我正在使用Sprng引导/休眠。 我浏览了很多在线教程,并试图实现它,但没有一个适合我的场景 我浏览了很多在线教程,并试图实现它,但没有一个适合我的场景 我只能在T_测试中插入记录,但不能在T_测试中插入记录Java 使用Spring/hibernate审核实体,java,spring,hibernate,spring-boot,Java,Spring,Hibernate,Spring Boot,我有一个表T_TEST。我已经为它创建了一个实体。我需要在T_TEST_audit中审核这个实体上的所有DBL操作 我该怎么做呢 我正在使用Sprng引导/休眠。 我浏览了很多在线教程,并试图实现它,但没有一个适合我的场景 我浏览了很多在线教程,并试图实现它,但没有一个适合我的场景 我只能在T_测试中插入记录,但不能在T_测试中插入记录 CREATE TABLE T_TEST ( ID NUMBER , EMP_NAME VARCHAR2(200), SAL NUMBER, MODIFICAT
CREATE TABLE T_TEST
(
ID NUMBER ,
EMP_NAME VARCHAR2(200),
SAL NUMBER,
MODIFICATION_DATE DATE,
CREATE_DATE DATE,
CREATED_BY VARCHAR2(200),
APPROVED_BY VARCHAR2(200)
);
CREATE TABLE T_TEST_AUDIT
(
AUDIT_ID NUMBER ,
ID NUMBER ,
EMP_NAME VARCHAR2(200),
SAL NUMBER,
MODIFICATION_DATE DATE,
CREATE_DATE DATE,
CREATED_BY VARCHAR2(200),
APPROVED_BY VARCHAR2(200)
);
使用。整合起来真的很容易。您希望审核的实体(即维护历史记录)将用@Audited
注释。Hibernate将创建一个单独的审计表,并为每次更新/插入/删除在其中插入一行
Maven依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
</dependency>
org.hibernate
冬眠使者
例如:
@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;
}
@已审核
公共类Zoo实现了可序列化{
私有字符串名称;
私有字符串地址;
@OneToMany(mappedBy=“zoo”,cascade=CascadeType.ALL,fetch=FetchType.LAZY,orphan=true)
@NotAudited//如果您没有任何要审核的字段,请使用@NotAudited注释它们
私人动物名录;
}
您可以使用hibernate envers或JPA侦听器。这里的更多信息我已经看到了链接,但它不起作用。我只能填充T_测试表。你用什么?Envers?您是否尝试过@Audited annotation.//这是最重要的部分:)请访问baeldung教程的快速入门部分。我收到了错误扫描您提供了我发布的上述示例的示例代码。如果您的spring.jpa.hibernate.ddl auto
设置为在应用程序中更新。properties
,我需要添加哪个实体@AuditedIf,您不必自己创建审计表,如果您的实体类用@Audited
spring.jpa.hibernate.ddl auto=validatein my app.properties spring.jpa.hibernate.ddl auto=validate注释,hibernate将为您创建它。此工作将尝试将其更改为spring.jpa.hibernate.ddl auto=update
,并查看将创建的表。