0

Envers を使用してアプリケーションの監査を処理しようとしています。私は複数のユース ケースを持っているので、RevisionEntity実行中のアプリケーション全体を表す単一のものを確保することに制限されています (そうでなければ、これに対する解決策は複数のエンティティを使用する方がはるかに簡単だと思います)。基本的に、同じリビジョンの一部としてエンティティの複数のインスタンスを追跡し、理想的にはそのリビジョンの一部として他のエンティティを追跡したいと考えています。

基本的に、1 つのエンティティ (親) の挿入はリビジョンの開始をトリガーし、1 つのエンティティへの更新を含める必要があり、3 番目のエンティティへの挿入または更新も (この 1 つのリビジョンに) 含める必要があります。

では、これには独自の戦略が必要ですか? 既存のエンティティの戦略を破るつもりですか、それとも if/else チェックが必要ですか?

4

1 に答える 1

0

各リビジョンは、単一のトランザクションで行われた変更をキャプチャし、カスタマイズできません。また、リビジョン エンティティは常に 1 つです。

これは、トランザクションの前とトランザクションがコミットされた後、データベースが常に「一貫した」状態にあるという考え方です。そして、それこそがエンバースが捉えたい状態です。

したがって、1 つのトランザクションで複数のエンティティを変更すると、それらはすべて 1 つのリビジョンに取り込まれます。

于 2013-08-26T07:15:04.330 に答える