我有两个经过审计的实体 A 和 B。实体 A 拥有实体 B 的集合(注释为一对多关系)。将 A 的新实例插入数据库时,A 和 B 的所有行都处于同一修订版(假设是修订版 1)。然后,对 A 的更新仅影响实体 B 的实例。因此更新后,实体 A 仍处于修订版 1,而 B 的实体处于修订版 2(包括审计表中的 MOD 条目) . 在修订版 3 中,实体 A 被删除。因为实体 B 的集合使用@Cascade 注释,所以属于 A 的实体 B 也被删除。
鉴于这种情况,我如何使用 Envers 创建一个审计查询,该查询获取实体 A 的实例以及修订版 2 的更新实体 B?当我查询实体 A 的所有修订版时,我要么得到 A 的已删除实体,它不包含 B 的实体(修订版 3),要么我得到修订版 1 的 A 也包含修订版 1 的 B 实体。
如果有帮助,请使用 Hibernate 3.6。