エンティティのライフサイクル
エンティティには、New、Managed、Detached、Removedという4つの状態があり、永続コンテキストへ関連付けられているManaged、Removedと関連付けられていないNew、Detachedに分類できる。
状態は、EntityManagerのメソッドの呼び出しなどで上記のように状態遷移する。
- New(新規)
コンストラクタにより生成されたプライマリ・キーを持たないエンティティを表わす。
- Managed(管理された)
永続コンテキストへ関連付けられているプライマリ・キーを持つエンティティを表わす。
- Detached(分離された)
永続コンテキストへ関連付けられていないプライマリ・キーを持つエンティティを表わす。
- Removed(削除された)
永続コンテキストへ関連付けられている、削除予定のエンティティを表わす。
永続コンテキストへ関連付けられているエンティティは、EntityManager.flush()の呼び出しや、トランザクションのコミットによりテーブルに反映される。