パッケージ jakarta.persistence
インターフェース Query
- すべての既知のサブインターフェース:
StoredProcedureQuery
,TypedQuery<X>
public interface Query
クエリの実行を制御するために使用されるインターフェース。
- 導入:
- 1.0
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明int
更新または削除ステートメントを実行します。クエリの実行中に有効になるキャッシュ取得モード。クエリの実行中に有効になるキャッシュストレージモード。int
クエリオブジェクトが取得するように設定された最初の結果の位置。クエリの実行に有効なフラッシュモードを取得します。getHints()
クエリインスタンスに有効なプロパティとヒント、および関連する値を取得します。クエリの現在のロックモードを取得します。int
クエリオブジェクトが取得するように設定された結果の最大数。Parameter<?>
getParameter
(int position) 指定された位置で宣言された位置パラメーターに対応するパラメーターオブジェクトを取得します。<T> Parameter<T>
getParameter
(int position, ClassSE<T> type) 指定された位置と型を持つ宣言された位置パラメーターに対応するパラメーターオブジェクトを取得します。Parameter<?>
getParameter
(StringSE name) 指定された名前の宣言されたパラメーターに対応するパラメーターオブジェクトを取得します。<T> Parameter<T>
getParameter
(StringSE name, ClassSE<T> type) 指定された名前と型の宣言されたパラメーターに対応するパラメーターオブジェクトを取得します。クエリの宣言されたパラメーターに対応するパラメーターオブジェクトを取得します。getParameterValue
(int position) 位置パラメーターにバインドされた入力値を返します。<T> T
getParameterValue
(Parameter<T> param) パラメーターにバインドされた入力値を返します。getParameterValue
(StringSE name) 名前付きパラメーターにバインドされた入力値を返します。SELECT クエリを実行し、クエリ結果を型なしList
SE として返します。default StreamSE
SELECT クエリを実行し、クエリ結果を型なしStream
SE として返します。型なしの単一の結果を返す SELECT クエリを実行します。型なしの単一の結果を返す SELECT クエリを実行します。クエリのタイムアウト。boolean
値がパラメーターにバインドされているかどうかを示すブール値を返します。setCacheRetrieveMode
(CacheRetrieveMode cacheRetrieveMode) クエリ実行時に有効なキャッシュ取得モードを設定します。setCacheStoreMode
(CacheStoreMode cacheStoreMode) クエリ実行時に有効なキャッシュストレージモードを設定します。setFirstResult
(int startPosition) 取得する最初の結果の位置を設定します。setFlushMode
(FlushModeType flushMode) クエリの実行に使用されるフラッシュモードの種類を設定します。クエリのプロパティまたはヒントを設定します。setLockMode
(LockModeType lockMode) クエリの実行に使用するロックモード型を設定します。setMaxResults
(int maxResult) 取得する結果の最大数を設定します。setParameter
(int position, ObjectSE value) 引数値を定位置パラメーターにバインドします。setParameter
(int position, CalendarSE value, TemporalType temporalType) 使用すべきではありません。setParameter
(int position, DateSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。setParameter
(Parameter<CalendarSE> param, CalendarSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。setParameter
(Parameter<DateSE> param, DateSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。<T> Query
setParameter
(Parameter<T> param, T value) Parameter
オブジェクトの値をバインドします。setParameter
(StringSE name, ObjectSE value) 引数値を名前付きパラメーターにバインドします。setParameter
(StringSE name, CalendarSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。setParameter
(StringSE name, DateSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。setTimeout
(IntegerSE timeout) クエリのタイムアウトをミリ秒単位で設定します。<T> T
指定された型のオブジェクトを返して、プロバイダー固有の API へのアクセスを許可します。
メソッドの詳細
getResultList
ListSE getResultList()SELECT クエリを実行し、クエリ結果を型なしList
SE として返します。- 戻り値:
- 結果のリスト、または結果がない場合は空のリスト
- 例外:
IllegalStateExceptionSE
- Jakarta Persistence 照会言語 UPDATE または DELETE ステートメントが必要な場合QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合TransactionRequiredException
-NONE
以外のロックモードが設定されていて、トランザクションがない場合、または永続コンテキストがトランザクションに参加していない場合PessimisticLockException
- 悲観的ロックが失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
getResultStream
SELECT クエリを実行し、クエリ結果を型なしStream
SE として返します。デフォルトでは、このメソッドは
getResultList().stream()
に委譲されますが、永続化プロバイダーは追加機能を提供するためにこのメソッドをオーバーライドすることを選択する場合があります。- 戻り値:
- 結果のストリーム、または結果がない場合は空のストリーム
- 例外:
IllegalStateExceptionSE
- Jakarta Persistence 照会言語 UPDATE または DELETE ステートメントが必要な場合QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合TransactionRequiredException
-NONE
以外のロックモードが設定されていて、トランザクションがない場合、または永続コンテキストがトランザクションに参加していない場合PessimisticLockException
- 悲観的ロックが失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合- 導入:
- 2.2
- 関連事項:
getSingleResult
ObjectSE getSingleResult()型なしの単一の結果を返す SELECT クエリを実行します。- 戻り値:
- 結果
- 例外:
NoResultException
- 結果がない場合NonUniqueResultException
- 複数の結果の場合IllegalStateExceptionSE
- Jakarta Persistence 照会言語 UPDATE または DELETE ステートメントが必要な場合QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合TransactionRequiredException
-NONE
以外のロックモードが設定されていて、トランザクションがない場合、または永続コンテキストがトランザクションに参加していない場合PessimisticLockException
- 悲観的ロックが失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
getSingleResultOrNull
ObjectSE getSingleResultOrNull()型なしの単一の結果を返す SELECT クエリを実行します。- 戻り値:
- 結果、または結果がない場合は null
- 例外:
NonUniqueResultException
- 複数の結果の場合IllegalStateExceptionSE
- Jakarta Persistence 照会言語 UPDATE または DELETE ステートメントが必要な場合QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合TransactionRequiredException
-NONE
以外のロックモードが設定されていて、トランザクションがない場合、または永続コンテキストがトランザクションに参加していない場合PessimisticLockException
- 悲観的ロックが失敗し、トランザクションがロールバックされた場合LockTimeoutException
- 悲観的ロックが失敗し、ステートメントのみがロールバックされる場合PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合- 導入:
- 3.2
executeUpdate
int executeUpdate()更新または削除ステートメントを実行します。- 戻り値:
- 更新または削除されたエンティティの数
- 例外:
IllegalStateExceptionSE
- Jakarta Persistence 照会言語 SELECT ステートメントまたは条件照会のために呼び出された場合TransactionRequiredException
- トランザクションがないか、永続コンテキストがトランザクションに参加していない場合QueryTimeoutException
- ステートメントの実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
setMaxResults
取得する結果の最大数を設定します。- パラメーター:
maxResult
- 取得する結果の最大数- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- 引数が負の場合
getMaxResults
int getMaxResults()クエリオブジェクトが取得するように設定された結果の最大数。setMaxResults(int)
がクエリオブジェクトに適用されなかった場合は、Integer.MAX_VALUE
SE を返します。- 戻り値:
- 結果の最大数
- 導入:
- 2.0
setFirstResult
取得する最初の結果の位置を設定します。- パラメーター:
startPosition
- 0 から番号付けされた最初の結果の位置- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- 引数が負の場合
getFirstResult
int getFirstResult()クエリオブジェクトが取得するように設定された最初の結果の位置。setFirstResult
がクエリオブジェクトに適用されなかった場合は、0
を返します。- 戻り値:
- 最初の結果の位置
- 導入:
- 2.0
setHint
クエリのプロパティまたはヒントを設定します。ヒント要素を使用して、クエリのプロパティとヒントを指定できます。この仕様で定義されているプロパティは、プロバイダーが遵守する必要があります。プロバイダーによって認識されないベンダー固有のヒントは、確認なしで無視する必要があります。ポータブルアプリケーションは、標準のタイムアウトヒントに依存しないでください。使用中のデータベースとプロバイダーが使用するロックメカニズムに応じて、このヒントは観測される場合とされない場合があります。- パラメーター:
hintName
- プロパティまたはヒントの名前value
- プロパティまたはヒントの値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- 2 番目の引数が実装に有効でない場合
getHints
クエリインスタンスに有効なプロパティとヒント、および関連する値を取得します。- 戻り値:
- クエリのプロパティとヒント
- 導入:
- 2.0
setParameter
Parameter
オブジェクトの値をバインドします。- パラメーター:
param
- パラメーターオブジェクトvalue
- パラメーター値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターに対応していない場合- 導入:
- 2.0
setParameter
@DeprecatedSE(since="3.2") Query setParameter(Parameter<CalendarSE> param, CalendarSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。Calendar
SE のインスタンスをParameter
オブジェクトにバインドします。- パラメーター:
param
- パラメーターオブジェクトvalue
- パラメーター値temporalType
- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターに対応していない場合- 導入:
- 2.0
setParameter
@DeprecatedSE(since="3.2") Query setParameter(Parameter<DateSE> param, DateSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。- パラメーター:
param
- パラメーターオブジェクトvalue
- パラメーター値temporalType
- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターに対応していない場合- 導入:
- 2.0
setParameter
引数値を名前付きパラメーターにバインドします。- パラメーター:
name
- パラメーター名value
- パラメーター値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していない場合、または引数の型が正しくない場合
setParameter
@DeprecatedSE(since="3.2") Query setParameter(StringSE name, CalendarSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。Calendar
SE のインスタンスを名前付きパラメーターにバインドします。- パラメーター:
name
- パラメーター名value
- パラメーター値temporalType
- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していない場合、または値の引数の型が正しくない場合
setParameter
@DeprecatedSE(since="3.2") Query setParameter(StringSE name, DateSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。Date
SE のインスタンスを名前付きパラメーターにバインドします。- パラメーター:
name
- パラメーター名value
- パラメーター値temporalType
- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していない場合、または値の引数の型が正しくない場合
setParameter
引数値を定位置パラメーターにバインドします。- パラメーター:
position
- 位置value
- パラメーター値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- 位置がクエリの位置パラメーターに対応していない場合、または引数の型が正しくない場合
setParameter
@DeprecatedSE(since="3.2") Query setParameter(int position, CalendarSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。Calendar
SE のインスタンスを位置パラメーターにバインドします。- パラメーター:
position
- 位置value
- パラメーター値temporalType
- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- 位置がクエリの位置パラメーターに対応していない場合、または値の引数の型が正しくない場合
setParameter
@DeprecatedSE(since="3.2") Query setParameter(int position, DateSE value, TemporalType temporalType) 使用すべきではありません。新しく作成したコードでは、java.time
SE で定義された日付 / 時刻型を使用する必要があります。Date
SE のインスタンスを位置パラメーターにバインドします。- パラメーター:
position
- 位置value
- パラメーター値temporalType
- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE
- 位置がクエリの位置パラメーターに対応していない場合、または値の引数の型が正しくない場合
getParameters
クエリの宣言されたパラメーターに対応するパラメーターオブジェクトを取得します。クエリにパラメーターがない場合、空のセットを返します。このメソッドは、ネイティブクエリでサポートされる必要はありません。- 戻り値:
- パラメーターオブジェクトのセット
- 例外:
IllegalStateExceptionSE
- 実装がこの使用をサポートしていないときにネイティブクエリで呼び出された場合- 導入:
- 2.0
getParameter
指定された名前の宣言されたパラメーターに対応するパラメーターオブジェクトを取得します。このメソッドは、ネイティブクエリでサポートされる必要はありません。- パラメーター:
name
- パラメーター名- 戻り値:
- パラメーターオブジェクト
- 例外:
IllegalArgumentExceptionSE
- 指定された名前のパラメーターが存在しない場合IllegalStateExceptionSE
- 実装がこの使用をサポートしていないときにネイティブクエリで呼び出された場合- 導入:
- 2.0
getParameter
指定された名前と型の宣言されたパラメーターに対応するパラメーターオブジェクトを取得します。このメソッドは、条件クエリでのみサポートされる必要があります。- パラメーター:
name
- パラメーター名type
- 型- 戻り値:
- パラメーターオブジェクト
- 例外:
IllegalArgumentExceptionSE
- 指定された名前のパラメーターが存在しないか、型に割り当てられない場合IllegalStateExceptionSE
- 実装がこの使用をサポートしていないときに、ネイティブクエリまたは Jakarta Persistence クエリ言語クエリで呼び出された場合- 導入:
- 2.0
getParameter
指定された位置で宣言された位置パラメーターに対応するパラメーターオブジェクトを取得します。このメソッドは、ネイティブクエリでサポートされる必要はありません。- パラメーター:
position
- 位置- 戻り値:
- パラメーターオブジェクト
- 例外:
IllegalArgumentExceptionSE
- 指定された位置のパラメーターが存在しない場合IllegalStateExceptionSE
- 実装がこの使用をサポートしていないときにネイティブクエリで呼び出された場合- 導入:
- 2.0
getParameter
指定された位置と型で宣言された定位置パラメーターに対応するパラメーターオブジェクトを取得します。このメソッドは、プロバイダーによってサポートされる必要はありません。- パラメーター:
position
- 位置type
- 型- 戻り値:
- パラメーターオブジェクト
- 例外:
IllegalArgumentExceptionSE
- 指定された位置のパラメーターが存在しないか、型に割り当てられない場合IllegalStateExceptionSE
- 実装がこの使用をサポートしていないときに、ネイティブクエリまたは Jakarta Persistence クエリ言語クエリで呼び出された場合- 導入:
- 2.0
isBound
値がパラメーターにバインドされているかどうかを示すブール値を返します。- パラメーター:
param
- パラメーターオブジェクト- 戻り値:
- パラメーターがバインドされているかどうかを示すブール値
- 導入:
- 2.0
getParameterValue
パラメーターにバインドされた入力値を返します。(OUT パラメーターはバインドされていないことに注意してください。)- パラメーター:
param
- パラメーターオブジェクト- 戻り値:
- パラメーター値
- 例外:
IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターでない場合IllegalStateExceptionSE
- パラメーターがバインドされていない場合- 導入:
- 2.0
getParameterValue
名前付きパラメーターにバインドされた入力値を返します。(OUT パラメーターはバインドされていないことに注意してください。)- パラメーター:
name
- パラメーター名- 戻り値:
- パラメーター値
- 例外:
IllegalStateExceptionSE
- パラメーターがバインドされていない場合IllegalArgumentExceptionSE
- 指定された名前のパラメーターが存在しない場合- 導入:
- 2.0
getParameterValue
位置パラメーターにバインドされた入力値を返します。(OUT パラメーターはバインドされていないことに注意してください。)- パラメーター:
position
- 位置- 戻り値:
- パラメーター値
- 例外:
IllegalStateExceptionSE
- パラメーターがバインドされていない場合IllegalArgumentExceptionSE
- 指定された位置のパラメーターが存在しない場合- 導入:
- 2.0
setFlushMode
クエリの実行に使用するフラッシュモード型を設定します。フラッシュモード型は、エンティティマネージャーで使用されているフラッシュモード型に関係なく、クエリに適用されます。- パラメーター:
flushMode
- フラッシュモード- 戻り値:
- 同じクエリインスタンス
getFlushMode
FlushModeType getFlushMode()クエリ実行に有効なフラッシュモードを取得します。クエリオブジェクトにフラッシュモードが設定されていない場合、エンティティマネージャーに有効なフラッシュモードを返します。- 戻り値:
- フラッシュモード
- 導入:
- 2.0
setLockMode
クエリの実行に使用するロックモード型を設定します。- パラメーター:
lockMode
- ロックモード- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalStateExceptionSE
- クエリが Jakarta Persistence クエリ言語 SELECT クエリまたはCriteriaQuery
クエリではないことが判明した場合- 導入:
- 2.0
getLockMode
LockModeType getLockMode()クエリの現在のロックモードを取得します。クエリオブジェクトにロックモードが設定されていない場合は null を返します。- 戻り値:
- ロックモード
- 例外:
IllegalStateExceptionSE
- クエリが Jakarta Persistence クエリ言語 SELECT クエリまたはCriteriaQuery
クエリではないことが判明した場合- 導入:
- 2.0
setCacheRetrieveMode
クエリ実行時に有効なキャッシュ取得モードを設定します。このキャッシュ取得モードは、エンティティマネージャーが使用しているキャッシュ取得モードをオーバーライドします。- パラメーター:
cacheRetrieveMode
- キャッシュ取得モード- 戻り値:
- 同じクエリインスタンス
- 導入:
- 3.2
setCacheStoreMode
クエリ実行時に有効なキャッシュストレージモードを設定します。このキャッシュストレージモードは、エンティティマネージャーが使用しているキャッシュストレージモードをオーバーライドします。- パラメーター:
cacheStoreMode
- キャッシュストレージモード- 戻り値:
- 同じクエリインスタンス
- 導入:
- 3.2
getCacheRetrieveMode
CacheRetrieveMode getCacheRetrieveMode()クエリの実行中に有効になるキャッシュ取得モード。- 導入:
- 3.2
getCacheStoreMode
CacheStoreMode getCacheStoreMode()クエリの実行中に有効になるキャッシュストレージモード。- 導入:
- 3.2
setTimeout
クエリのタイムアウトをミリ秒単位で設定します。これはヒントであり、ヒントjakarta.persistence.query.timeout
を設定する代わりに使用できます。- パラメーター:
timeout
- タイムアウト(ミリ秒単位)、またはタイムアウトなしを示す場合は null- 戻り値:
- 同じクエリインスタンス
- 導入:
- 3.2
getTimeout
IntegerSE getTimeout()クエリのタイムアウト。- 導入:
- 3.2
unwrap
指定された型のオブジェクトを返して、プロバイダー固有の API へのアクセスを許可します。Query
のプロバイダ実装が指定された型をサポートしていない場合、PersistenceException
がスローされます。- パラメーター:
cls
- 返されるオブジェクトの型。これは通常、Query
を実装する基礎となるクラス、またはそれが実装するインターフェースのいずれかです。- 戻り値:
- 指定されたクラスのインスタンス
- 例外:
PersistenceException
- プロバイダーが指定された型をサポートしていない場合- 導入:
- 2.0
java.time
SE で定義された日付 / 時刻型を使用する必要があります。