Аудит сущности с использованием Spring / hibernate - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть таблица T_TEST. И я создал для нее объект. Мне нужно проверить все операции DBL с этим объектом в T_TEST_AUDIT.

Как я могу это сделать.

Я использую Sprng-boot / Hibernate.Я прошел много онлайн-урока и попытался реализовать его, но ни один из них не работал для моего сценария

Я прошел много онлайн-урока и попытался реализовать его, но ни один не работал для моего сценария.

IЯ могу вставлять записи только в T_TEST, но не в T_TEST_AUDIT

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)
);

1 Ответ

0 голосов
/ 27 декабря 2018

Использовать 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;

  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...