使用Envers,如何查询历史数据并且在父表的查询修订版中没有缺少的子实体数据?

时间:2019-02-15 17:17:19

标签: hibernate annotations hibernate-envers

我的休眠数据库中有几个表。当我在数据库中查询实体TABLE_A时,由于表的结构方式,我可以访问TABLE_C和TABLE_D中的集合。到目前为止,我的问题是,当我查询TABLE_A的修订版时,看不到TABLE_C和TABLE_D的集合的数据...这些实体为null。我想我理解为什么,但是我不知道如何配置envers来跟踪所有表中的数据,因此在查询修订时我不会得到空实体。例如,我的应用程序执行了一个事务,该事务针对该特定事务更新了TABLE_D中的数据,但不更新TABLE_A,TABLE_B或TABLE_C中的数据,导致仅将修订添加到TABLE_D_AUD,而不添加到TABLE_A_AUD,TABLE_B_AUD或TABLE_C_AUD。

所以我的问题是,如果TABLE_A_AUD,TABLE_B_AUD或TABLE_C_AUD中没有任何数据更改,并且只有TABLE_D导致TABLE_D修订版的修订版号增加,那么我该如何配置这些东西,以便在获得TABLE_A的修订版时看到子表TABLE_D的最新更改?问题在于,由于TABLE_D发生了更改而转速表编号却被删除,而其他的则没有,但是它们都已连接。

另一方面,如果为休眠事务期间接触的每个表创建一个修订,那么如果事务中未触及那些子表,那么如何从子表中获取没有任何丢失数据的修订呢?

TombstoneOverwhelming

0 个答案:

没有答案