Перемещение таблицы аудита с java envers в новый экземпляр базы данных - PullRequest
0 голосов
/ 16 января 2020

У меня есть Mysql БД, имя схемы "myschema". Эта схема имеет таблицы, где некоторые из этих таблиц являются таблицами аудита. Это моя зависимость от моего java проекта.

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-envers</artifactId>
   <version>5.1.0.Final</version>
</dependency>

Теперь я хотел перенести эти таблицы аудита в мою текущую БД и добавить их в отдельный экземпляр с новым ветвью uri.

Как это можно сделать? Любой совет, заранее спасибо

Ответы [ 2 ]

1 голос
/ 17 января 2020

Пожалуйста, обратите внимание на Параметры конфигурации :

org.hibernate.envers.default_schema Имя схемы по умолчанию, которое следует использовать для таблиц аудита .

org.hibernate.envers.default_catalog Имя каталога по умолчанию, которое следует использовать для таблиц аудита.

Опция, которую следует использовать, зависит от того, используется ли ваша база данных.

Существует также ошибка, заключающаяся в том, что если вы используете сопоставления сущностей редакций по умолчанию, предоставляемые Envers из коробки, то эти сопоставления не будут отображаться должным образом при использовании этих параметров конфигурации, только таблицы, связанные с отображения сущностей.

Чтобы правильно сопоставить таблицу REVINFO с соответствующей схемой или каталогом, необходимо использовать настраиваемое сопоставление объектов редакции в сочетании с аннотацией @Table, чтобы явно указать схему / каталог. См. Раздел Журнал изменений , в котором описано использование пользовательского аннотированного сопоставления сущностей @RevisionEntity с Envers.

1 голос
/ 17 января 2020

AFAIK Envers не поддерживает использование отдельной базы данных / DataSource. Кажется, есть несколько способов получить данные в другую базу данных: Oracle Ссылка на базу данных - MySQL Эквивалент?

В качестве альтернативы, я думаю, вы могли бы написать пользовательскую DataSource что делегирует операторы различным источникам данных в зависимости от оператора. Проверьте, упоминается ли таблица аудита, и если да, отправьте ее в базу данных аудита.

...