Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.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 使用Spring/hibernate审核实体_Java_Spring_Hibernate_Spring Boot - Fatal编程技术网

Java 使用Spring/hibernate审核实体

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

我有一个表T_TEST。我已经为它创建了一个实体。我需要在T_TEST_audit中审核这个实体上的所有DBL操作

我该怎么做呢

我正在使用Sprng引导/休眠。 我浏览了很多在线教程,并试图实现它,但没有一个适合我的场景

我浏览了很多在线教程,并试图实现它,但没有一个适合我的场景

我只能在T_测试中插入记录,但不能在T_测试中插入记录

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
,并查看将创建的表。