すべてが単一のトランザクションにラップされた複数のコンポーネントにまたがる、かなり複雑なサーバー呼び出しを想像してみてください。1 つのコンポーネントで新しいエンティティを作成できますsaveOrUpdate
。別のコンポーネントがこのエンティティにアクセスできますが、このエンティティがこのセッションで作成されたか、それ以前に作成されたかを知る必要があります。どうすれば達成できますか?
wasCreatedInThisSession
理想的には、以下のようなブール呼び出しを探します。
public void myTransactionalMethod() {
MyEntity e1 = session.load(MyEntity.class, 15);
session.wasCreatedInThisSession(e1); // -> false
MyEntity e2 = new MyEntity("Test");
session.saveOrUpdate(e2);
session.wasCreatedInThisSession(e2); // -> true
}