エンティティのライフサイクル

エンティティには、New、Managed、Detached、Removedという4つの状態があり、永続コンテキストへ関連付けられているManaged、Removedと関連付けられていないNew、Detachedに分類できる。
状態は、EntityManagerのメソッドの呼び出しなどで上記のように状態遷移する。

  • New(新規)

コンストラクタにより生成されたプライマリ・キーを持たないエンティティを表わす。

  • Managed(管理された)

永続コンテキストへ関連付けられているプライマリ・キーを持つエンティティを表わす。

  • Detached(分離された)

永続コンテキストへ関連付けられていないプライマリ・キーを持つエンティティを表わす。

  • Removed(削除された)

永続コンテキストへ関連付けられている、削除予定のエンティティを表わす。

永続コンテキストへ関連付けられているエンティティは、EntityManager.flush()の呼び出しや、トランザクションのコミットによりテーブルに反映される。