2

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

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

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

我怎样才能做到这一点?

4

1 回答 1

0

Envers 不可能做到这一点,事实上,这不是 Envers 的用途。

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

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

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

于 2012-07-02T07:27:36.130 回答