0

я хотел бы, чтобы лучше понять поведение Hibernate Envers .. Вот проблема: (PostgreSQL) У меня есть это:Hibernate - Аудит таблицы редактировать

Person (
      id bigint not null, 
      job character varying(10) 
) 

плюс его "_aud" таблица Person_AUD

Теперь я должен сделать это изменение:

ALTER TABLE Person 
ADD COLUMN group varchar (10); 

И, после этого, что-то вроде этого:

UPDATE TABLE Person 
SET group='unemployed' 
WHERE job=null; 

Мои вопросы: что делает Hibernate для моей таблицы _aud, когда я запускаю «таблицу изменений»? И что делает Hibernate для таблицы my_aud, когда я запускаю «обновление»?

Я спрашиваю это потому, что я не могу попробовать (я должен сделать это «вручную» с помощью LiquiBase поэтому я прошу его к вам :))

ответ

0

Отработка предположение, что столбец group должен быть аудит , вам нужно изменить Person_AUD, а так же, как вы делали с Person таблицы:

ALTER TABLE Person_AUD 
ADD COLUMN group varchar(10) 

поскольку поле NULL -able, это полностью зависит от вас ли его необходимо также выполнить аналогичное заявление обновления на столе Person_AUD. Если вы хотите, это будет:

UPDATE Person_AUD 
    SET group = 'unemployed' 
WHERE job is NULL 

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

+0

Да, действительно спасибо за ваш ответ .. но я думаю, что вы пропустили мой настоящий вопрос: «Что делает Hibernate для таблицы my_aud, когда я запускаю« обновление »?» Например: У меня есть Person таблица: ID JOB 0 нуль После "изменить" и "обновление" это будет выглядеть следующим образом: лицо: ID JOB GROUP 0 нулевой безработных Как выглядит таблица Person_AUD? Будет ли он создавать новую строку, включая новый REV и добавление REVEND? –

+0

Вы используете настройку конфигурации hbm2ddl с помощью 'update'? – Naros

+0

nope и я не могу его изменить –