EJB 3.0(Public Draft)入門記 Java Persistence API Chapter3 その6
今回は管理されたインスタンスとトランザクションのロールバックについて。コードのサンプルはもうちょっと進んでから書いてみたいと思います。
3.2.5 Managed Instances
EntityManagerのcontains()メソッドはエンティティのインスタンスが現在の永続コンテキスト内で管理されているかどうかを判別するためにつかわれるそうです。- contains()メソッドがtrueを返すとき
- エンティティがDBから取得され、削除されていないもしくは切り離されていない場合
- インスタンスが生成され、persistメソッドがそのエンティティに対して実行されているもしくはpersist操作がそのエンティティにカスケードされている場合
- contains()メソッドがfalseを返すとき
実際のDBへの更新はトランザクション終了時まで行われないことがあるけれど、persitやremove操作がカスケードされるとcontains()メソッドはただちに感知するから注意しろと。
この節はひさしぶりにわかりやすい内容です。
3.2.6 Transaction Rollback
Transaction rollback causes a pre-existing managed instance or removed instance to become detached.
トランザクションのロールバックが起こると事前に管理されたインスタンスもしくは削除されたインスタンスは切り離されるそうです。
なんでandじゃなくてorなんだろう?