参考: Architecture (Hibernate v.3 Documentation - Chapter 2)
用語の定義
SessionFactory
単一データベース用のコンパイル済みマッピングのスレッドセーフなキャッシュで、SessionのファクトリかつConnectionProviderのクライアント。トランザクション間で再利用可能な2次キャッシュを、場合によって提供する。
Session
アプリケーションと永続化ストア間のやり取りを表す、シングルスレッドで短命なオブジェクト。JDBCコネクションをラップしたTransanctionのファクトリ。また、データの1次キャッシュ(idでオブジェクトを検索した場合や、オブジェクトの関連を辿る場合に利用される)を提供する。
Persistent objects and collections
永続化状態とビジネスファンクション(?)を保持する短命な単一スレッドのオブジェクトで、ほぼJava Beans/POJO。異なる点は、唯一のSessionに関連付けられているということ。Sessionがクローズされるとデタッチされ、アプリケーション層で自由に利用できる。
Transient and detached objects and collections
Sessionと関連づいていない永続化クラスのインスタンス。アプリケーションによってインスタンス化されまだ永続化されていないか、クローズされたSessionによってインスタンス化されたもの。
Transaction
アプリケーションで処理のアトミック性を定めるために利用する、シングルスレッドで短命なオブジェクト。Sessionは複数Transactionに跨る場合もあるが、Transactionはそれ以上分割できない。
ConnectionProvider
JDBCコネクションのファクトリで、DataSourceまたはDriverManager由来のアプリケーション。アプリケーションで利用できないが、カスタマイズできる。
TransactionFactory
Transactionのファクトリで、アプリケーションで利用できないがカスタマイズできる。
インスタンスの状態について
Sessionの状態を考慮し、永続化クラスのインスタンスは3つの状態の何れかになる。
- transient
インスタンスがSessionと関連付けられておらず、主キーの値がセットされていない状態。 - persistent
Sessionと関連付けられたインスタンスで、主キーの値がセットされておりデータベースの行と一致する。特殊な永続化コンテキストでは、永続化IDとJava ID(オブジェクトのメモリー内の場所)とが一致する。 - detached
既にクローズされた永続化コンテキストと関連付けられていたか、他のプロセスにシリアライズされたインスタンス。永続化IDがセットされており、データベースの行と一致する場合が多い。
0 件のコメント:
コメントを投稿