Hibernate - 审计表编辑

时间:2016-06-17 15:57:21

标签: hibernate postgresql liquibase hibernate-envers liquibase-hibernate

我想更好地了解Hibernate Envers的行为.. 这就是问题所在: (PostgreSQL)我有这个:

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;

我的问题是:当我运行" alter table时,Hibernate对我的_aud表做了什么? 而且,当我运行"更新&#34时,Hibernate对my_aud表做了什么?

我问这个因为我无法尝试(我必须这样做"手动"使用Liquibase所以我问你:) :)

1 个答案:

答案 0 :(得分:0)

假设要审核列group,您还需要改变Person_AUD,就像使用Person表一样:

ALTER TABLE Person_AUD 
ADD COLUMN group varchar(10)

由于该字段为NULL - 能够完全取决于您是否有必要在Person_AUD表上执行类似的更新语句。如果你愿意,那就是:

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

值得注意的是,Person_AUD表中更新的行数不一定与Person表中更新的行数相同,因为审计表可能包含来自Person的同一主键的多行具有不同的修订版。