Как перенести уже существующие пользовательские таблицы истории в среду

По историческим причинам мы используем envers, а также специальный механизм аудита. Некоторые таблицы проверяются envers, но одна таблица и большинство ее зависимых таблиц проверяются вручную.

Наше специальное решение создает копию графа объектов, добавляет отметку времени и сохраняет объекты *history в соответствующих таблицах.

Допустим, у нас есть объект A, который ссылается на набор объектов B, который ссылается на набор объектов C. Если мы обнаружим обновление или вставку A, мы создадим копию A_History, которая ссылается на набор сущностей B_History, который ссылается на набор сущностей C_History. Все свойства упомянутых сущностей копируются в соответствующий объект *history, а полный граф сохраняется. На самом деле мы имеем дело с 12 таблицами для представления графа объекта.

Чтобы избавиться от старого кода и унифицировать поведение, мы хотели бы перенести весь аудит на envers. Но, конечно, хотелось бы сохранить уже существующую историю, пусть даже она не была создана envers.

Я нашел несколько руководств по созданию исходной информации о ревизии, если в существующий проект вводится envers. Но я не нашел никакой помощи для переноса уже существующей информации о ревизии, не управляемой envers.

Есть ли способ выполнить миграцию, кроме написания необработанных операторов SQL?


person samjaf    schedule 04.04.2016    source источник


Ответы (1)


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

person Naros    schedule 05.04.2016