1. Transient state
new でメモリ空間を開放することで作成されるエンティティオブジェクトですが、Hibernate セッションの管理には含まれません。変数が参照していない場合は、 JVM (ガベージ コレクター) によってリサイクルされます。過渡状態の オブジェクトはメモリ内に隔離されており、データベース とは何の関係も持たず、単なる情報の伝達手段にすぎません。
一時状態オブジェクトは永続状態オブジェクトによって参照され、自動的に永続状態オブジェクトになります。たとえば、セッションの save、save、または update などのメソッドを呼び出すときです。
特徴:
(1) new を使用して作成されたオブジェクトには id 属性が設定されていません
(2) セッションによってホストされていません。オブジェクト データはメモリに保存され、セッション キャッシュには保存されません
(3) 一時オブジェクト データとデータベース内のデータの間に相関関係はありません
2. 永続状態
永続状態オブジェクトはデータベース内のデータに関連付けられ、常にセッション状態 (Session) およびトランザクション (Transaction) に関連付けられます。永続状態オブジェクトが変更されても、データベース操作はすぐには実行されません。トランザクションが終了したときにのみデータベースが更新され、Hibernate の永続オブジェクトとデータベース操作の同期が確保されます。
永続状態オブジェクトが管理状態オブジェクトになると、Hibernate 永続層の管理スコープ内にはなくなります。 特徴: (1) get メソッドまたはload メソッドを使用してデータベースからクエリされたデータ オブジェクトであるか、save メソッドまたは update メソッドを使用してデータが永続化レイヤー オブジェクトに変換されます。 (2) オブジェクトデータはセッション単位で管理されます。言い換えれば、セッション キャッシュにはオブジェクト データのコピーが存在し、データベースには対応するレコードが存在します。3. 制御不能状態
永続オブジェクト セッションが閉じられた後 、オブジェクトは永続状態から管理状態に変わります。管理状態オブジェクトは依然としてデータベース内のデータに関連付けられていますが、Hibernate のセッションの範囲内にはありません。
切り離されたオブジェクトを新しいセッションに再度関連付けると、永続オブジェクトに戻ります。 機能: (1) これは主に、永続状態オブジェクトを通じて session.evict()、session.clear()、または session.close() を呼び出すことによって取得されます。 ID 値を持つ新しいオブジェクトによって設定されます(2) セッション キャッシュにはオブジェクトはありませんが、メモリにはオブジェクトがあります (注: オブジェクトには ID 値が設定されています)4. 削除状態
セッションの削除メソッドが呼び出されると、オブジェクトは削除済み状態に変わります。削除された状態は、リサイクルされるまで待つことしかできません。
以上がJavaのHibernateのステータスは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。