坚持特定的修订号

时间:2012-06-30 16:22:59

标签: java hibernate hibernate-envers

我阅读了Hibernate Envers文档,但是我不明白如何让以下内容工作:

我有两个实体:地址和订单。订单有一个地址。

创建订单时,我希望它坚持当前的地址修订版,因此如果相同的地址更改(生成新的修订版),订单仍然指向创建时的地址修订版。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:0)

这对Envers来说是不可能的,事实上并不是Envers的目标。

在您的情况下,您有两个不同的地址“身份” - 旧身份和新身份。因此,它们应该是独立的实体。它与更改的地址实体不同。

然后,您可以使用Envers跟踪关系如何变化。假设您有订单O,并且地址为A1和A2。最初的关系是:O-> A1。但是当地址发生变化时,您可以将关系更改为:O-> A2,这将反映在历史记录中。

但是,当您阅读实体时,您始终会获得最新版本。 “当前”实体不能指向历史性条目。