状態 概要 条件
一時オブジェクト Hibernateによって永続化されていない状態。新規作成された場合や永続オブジェクトがdeleteによって削除されると、この状態になります。また、一時オブジェクトはsave()などによってHibernateのSessionでキャッシュされ、永続オブジェクトになります。
  1. Sessionで管理されていない
  2. オブジェクトとしてメモリ上に存在するが、対応するレコードがデータベース上に存在しない
永続オブジェクト HibernateのSessionでキャッシュされ、永続化するオブジェクトとして扱われている状態。永続オブジェクトは内容が変更されると、コミット時に自動的に変更内容がデータベースに反映されます。close()、clear()といったメソッドが呼び出されると、Sessionのキャッシュからオブジェクトは削除され、分離オブジェクトになります。
  1. Sessionで管理されている
  2. オブジェクトとしてメモリ上に存在し、データベースへの永続化の対象となる
分離オブジェクト データベースに永続化されているが、HibernateのSessionでキャッシュされていない状態。分離オブジェクトを操作しても、内容はデータベースへ反映されません。
  1. Sessionで管理されていない
  2. オブジェクトとしてメモリ上に存在し、対応するレコードがデータベース上に存在する

表1:各オブジェクトの説明