Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)

[目次][用語][索引][前へ][次へ]

6.4.4 データベースからのエンティティの取得

EntityManagerのfindメソッドまたはgetReferenceメソッドの呼び出しによって,引数で指定した主キーに対応するエンティティをデータベースから取得できます。

EntityManagerのfindメソッドまたはgetReferenceメソッドで返されるエンティティは,トランザクションスコープの永続化コンテキストを利用します。このため,トランザクション内でメソッドを呼び出した場合はmanaged状態になります。また,トランザクション外でfindメソッドまたはgetReferenceメソッドを呼び出した場合はdetached状態になります。

find操作またはgetReference操作で取得したエンティティの状態を次の表に示します。

表6-10 find操作またはgetReference操作で取得したエンティティの状態

永続化コンテキスト 取得したエンティティの状態
トランザクションスコープの永続化コンテキスト(トランザクション外) detached
トランザクションスコープの永続化コンテキスト(トランザクション内) managed
拡張された永続化コンテキスト(トランザクション外) managed
拡張された永続化コンテキスト(トランザクション内) managed

なお,CJPAプロバイダの場合,find操作またはgetReference操作では次の点がJPA仕様と異なります。なお,このほかにJPA仕様との機能差はありません。