Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


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

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

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

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

表8‒11 find操作またはgetReference操作で取得したエンティティの状態

永続化コンテキスト

取得したエンティティの状態

トランザクションスコープの永続化コンテキスト(トランザクション外)

detached

トランザクションスコープの永続化コンテキスト(トランザクション内)

managed

拡張された永続化コンテキスト(トランザクション外)

managed

拡張された永続化コンテキスト(トランザクション内)

managed

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