8.16.6 クエリの実行時の注意事項
ここでは,クエリ実行時の注意事項について説明します。
-
setMaxResultsメソッドまたはsetFirstResultメソッドで,コレクション同士がFETCH JOINを含むクエリを実行した場合,結果は保証されません。
-
executeUpdateメソッド以外のQueryメソッドは,トランザクション内で実行する必要はありません。特にgetResultListとgetSingleResultメソッドはトランザクション内で実行する必要はありません。
-
トランザクションスコープ永続化コンテキストのEntityManagerで,クエリが実行された場合の結果のエンティティは,detached状態になります。拡張永続化コンテキストのEntityManagerでクエリが実行された場合,すべてmanaged状態になります。
-
QueryインタフェースのメソッドからスローされるNoResultExceptionとNonUniqueResultException以外の実行時例外はカレントのトランザクションをロールバックします。