2

Hibernate Envers のドキュメントを読みましたが、以下を機能させる方法がわかりませんでした:

Address と Order という 2 つのエンティティがあります。注文には住所があります。

注文が作成されたときに、現在の住所リビジョンに固執するようにしたいので、同じ住所が変更された場合 (新しいリビジョンが生成された場合)、注文は作成時の住所リビジョンを指し続けます。

どうすればこれを達成できますか?

4

1 に答える 1

0

それは Envers では不可能であり、実際、Envers はそのために作られているわけではありません。

あなたの場合、古いものと新しいものの2つの異なるアドレス「アイデンティティ」があります。したがって、それらは別個のエンティティである必要があります。変更されるのは同じ Address エンティティではありません。

その後、Envers を使用して、関係がどのように変化するかを追跡できます。注文が O で、住所が A1 と A2 であるとします。最初の関係は、O->A1 です。ただし、アドレスが変更されたときに、O->A2 の関係を変更すると、履歴に反映されます。

ただし、エンティティを読み取ると、常に最新バージョンが取得されます。「現在の」エンティティは、履歴エントリを指すことはできません。

于 2012-07-02T07:27:36.130 に答える