パッケージ jakarta.persistence
インターフェース StoredProcedureQuery
- すべてのスーパーインターフェース:
Query
public interface StoredProcedureQuery extends Query
ストアドプロシージャクエリの実行を制御するために使用されるインターフェース。ストアドプロシージャクエリの実行は、以下に従って制御できます。
setParameterメソッドは、必要なすべてのINおよびINOUTパラメーターの値を設定するために使用されます。ストアードプロシージャーによってデフォルト値が定義されているストアードプロシージャーパラメーターの値を設定する必要はありません。getResultListおよびgetSingleResultがStoredProcedureQueryオブジェクトで呼び出されると、プロバイダーは、getResultListまたはgetSingleResultを処理する前に、未実行のストアドプロシージャクエリでexecuteを呼び出します。StoredProcedureQueryオブジェクトでexecuteUpdateが呼び出されると、プロバイダーは、getUpdateCountが後に続く未実行のストアドプロシージャクエリでexecuteを呼び出します。executeUpdateの結果はgetUpdateCountの結果になります。executeメソッドは、スカラー結果がINOUTおよびOUTパラメーターを介してのみ渡される単純なケースと、最も一般的なケース(複数の結果セットや更新カウント、あるいは出力パラメーター値との組み合わせも)の両方をサポートします。executeメソッドは、最初の結果が結果セットである場合は true を返し、更新カウントである場合、INOUTおよびOUTパラメーター(存在する場合)以外の結果がない場合は false を返します。executeメソッドが true を返す場合、保留中の結果セットはgetResultListまたはgetSingleResultを呼び出すことによって取得できます。hasMoreResultsメソッドを使用して、さらに結果をテストできます。executeまたはhasMoreResultsが false を返す場合、getUpdateCountメソッドを呼び出して、更新カウントである場合、保留中の結果を取得できます。getUpdateCountメソッドは、更新カウント(ゼロ以上)または更新カウントがない場合(つまり、次の結果が結果セットであるか、次の更新カウントがない場合)は -1 を返します。- 移植性のために、JDBC 結果セットおよび更新カウントに対応する結果は、
INOUTまたはOUTパラメーターの値が抽出される前に処理される必要があります。 getResultListおよびgetUpdateCountを介して返された結果を使い果たした後、INOUTおよびOUTパラメーターを介して返された結果を取得できます。getOutputParameterValueメソッドは、INOUTおよびOUTパラメーターを介してプロシージャから返された値を取得するために使用されます。- 結果セットに
REF_CURSORパラメーターを使用する場合、getResultListを呼び出して結果セットを取得する前に、更新カウントを使い果たす必要があります。または、getOutputParameterValueを使用してREF_CURSOR結果セットを取得することもできます。結果セットマッピングは、REF_CURSORパラメーターがクエリに登録された順序で、REF_CURSORパラメーターに対応する結果に適用されます。 INOUTおよびOUTパラメーターを介してのみ結果が返される最も単純なケースでは、executeの直後にgetOutputParameterValueへの呼び出しを続けることができます。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 修飾子と型 メソッド 説明 booleanexecute()最初の結果が結果セットに対応する場合は true を返し、それが更新カウントである場合、INOUT および OUT パラメーターを介して以外に結果がない場合は false を返します。intexecuteUpdate()保留中の結果がない場合、または最初の結果が更新カウントでない場合は、更新カウント -1 を返します。ObjectSEgetOutputParameterValue(int position)INOUT または OUT パラメーターを介してプロシージャから返された値を取得します。ObjectSEgetOutputParameterValue(StringSE parameterName)INOUT または OUT パラメーターを介してプロシージャから返された値を取得します。ListSEgetResultList()次の結果セットから結果のリストを取得します。ObjectSEgetSingleResult()次の結果セットから単一の結果を取得します。intgetUpdateCount()更新カウントを返すか、保留中の結果がない場合、次の結果が更新カウントでない場合は -1 を返します。booleanhasMoreResults()次の結果が結果セットに対応する場合は true を返し、更新カウントである場合、INOUT パラメーターと OUT パラメーターを介して以外に結果がない場合は false を返します。StoredProcedureQueryregisterStoredProcedureParameter(int position, ClassSE type, ParameterMode mode)位置パラメーターを登録します。StoredProcedureQueryregisterStoredProcedureParameter(StringSE parameterName, ClassSE type, ParameterMode mode)名前付きパラメーターを登録します。StoredProcedureQuerysetFlushMode(FlushModeType flushMode)クエリの実行に使用されるフラッシュモードの種類を設定します。StoredProcedureQuerysetHint(StringSE hintName, ObjectSE value)クエリのプロパティまたはヒントを設定します。StoredProcedureQuerysetParameter(int position, ObjectSE value)引数値を定位置パラメーターにバインドします。StoredProcedureQuerysetParameter(int position, CalendarSE value, TemporalType temporalType)java.util.Calendarのインスタンスを定位置パラメーターにバインドします。StoredProcedureQuerysetParameter(int position, DateSE value, TemporalType temporalType)java.util.Dateのインスタンスを定位置パラメーターにバインドします。StoredProcedureQuerysetParameter(Parameter<CalendarSE> param, CalendarSE value, TemporalType temporalType)java.util.CalendarのインスタンスをParameterオブジェクトにバインドします。StoredProcedureQuerysetParameter(Parameter<DateSE> param, DateSE value, TemporalType temporalType)java.util.DateのインスタンスをParameterオブジェクトにバインドします。<T> StoredProcedureQuerysetParameter(Parameter<T> param, T value)Parameterオブジェクトの値をバインドします。StoredProcedureQuerysetParameter(StringSE name, ObjectSE value)引数値を名前付きパラメーターにバインドします。StoredProcedureQuerysetParameter(StringSE name, CalendarSE value, TemporalType temporalType)java.util.Calendarのインスタンスを名前付きパラメーターにバインドします。StoredProcedureQuerysetParameter(StringSE name, DateSE value, TemporalType temporalType)java.util.Dateのインスタンスを名前付きパラメーターにバインドします。インターフェース jakarta.persistence.Query から継承されたメソッド
getFirstResult, getFlushMode, getHints, getLockMode, getMaxResults, getParameter, getParameter, getParameter, getParameter, getParameters, getParameterValue, getParameterValue, getParameterValue, getResultStream, isBound, setFirstResult, setLockMode, setMaxResults, unwrap
メソッドの詳細
setHint
StoredProcedureQuery setHint(StringSE hintName, ObjectSE value)
クエリプロパティまたはヒントを設定します。ヒント要素は、クエリのプロパティとヒントを指定するために使用できます。この仕様で定義されたプロパティは、プロバイダーによって監視される必要があります。プロバイダーによって認識されないベンダー固有のヒントは、確認なしで無視する必要があります。ポータブルアプリケーションは、標準のタイムアウトヒントに依存しないでください。使用中のデータベースに応じて、このヒントは観測される場合と観測されない場合があります。- 次で指定:
- インターフェース
QueryのsetHint - パラメーター:
hintName- プロパティまたはヒントの名前value- プロパティまたはヒントの値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- 2 番目の引数が実装に有効でない場合
setParameter
<T> StoredProcedureQuery setParameter(Parameter<T> param, T value)
Parameterオブジェクトの値をバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
param- パラメーターオブジェクトvalue- パラメーター値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- パラメーターがクエリのパラメーターに対応していない場合
setParameter
StoredProcedureQuery setParameter(Parameter<CalendarSE> param, CalendarSE value, TemporalType temporalType)
java.util.CalendarのインスタンスをParameterオブジェクトにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
param- パラメーターオブジェクトvalue- パラメーター値temporalType- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- パラメーターがクエリのパラメーターに対応していない場合
setParameter
StoredProcedureQuery setParameter(Parameter<DateSE> param, DateSE value, TemporalType temporalType)
java.util.DateのインスタンスをParameterオブジェクトにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
param- パラメーターオブジェクトvalue- パラメーター値temporalType- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- パラメーターがクエリのパラメーターに対応していない場合
setParameter
StoredProcedureQuery setParameter(StringSE name, ObjectSE value)
引数値を名前付きパラメーターにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
name- パラメーター名value- パラメーター値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- パラメーター名がクエリのパラメーターに対応していない場合、または引数の型が正しくない場合
setParameter
StoredProcedureQuery setParameter(StringSE name, CalendarSE value, TemporalType temporalType)
java.util.Calendarのインスタンスを名前付きパラメーターにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
name- パラメーター名value- パラメーター値temporalType- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- パラメーター名がクエリのパラメーターに対応していない場合、または値の引数の型が正しくない場合
setParameter
StoredProcedureQuery setParameter(StringSE name, DateSE value, TemporalType temporalType)
java.util.Dateのインスタンスを名前付きパラメーターにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
name- パラメーター名value- パラメーター値temporalType- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- パラメーター名がクエリのパラメーターに対応していない場合、または値の引数の型が正しくない場合
setParameter
StoredProcedureQuery setParameter(int position, ObjectSE value)
引数値を定位置パラメーターにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
position- 位置value- パラメーター値- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- 位置がクエリの位置パラメーターに対応していない場合、または引数の型が正しくない場合
setParameter
StoredProcedureQuery setParameter(int position, CalendarSE value, TemporalType temporalType)
java.util.Calendarのインスタンスを定位置パラメーターにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
position- 位置value- パラメーター値temporalType- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- 位置がクエリの位置パラメーターに対応していない場合、または値の引数の型が正しくない場合
setParameter
StoredProcedureQuery setParameter(int position, DateSE value, TemporalType temporalType)
java.util.Dateのインスタンスを定位置パラメーターにバインドします。- 次で指定:
- インターフェース
QueryのsetParameter - パラメーター:
position- 位置value- パラメーター値temporalType- 時間型- 戻り値:
- 同じクエリインスタンス
- 例外:
IllegalArgumentExceptionSE- 位置がクエリの位置パラメーターに対応していない場合、または値の引数の型が正しくない場合
setFlushMode
StoredProcedureQuery setFlushMode(FlushModeType flushMode)
クエリの実行に使用するフラッシュモード型を設定します。フラッシュモード型は、エンティティマネージャーで使用されているフラッシュモード型に関係なく、クエリに適用されます。- 次で指定:
- インターフェース
QueryのsetFlushMode - パラメーター:
flushMode- フラッシュモード- 戻り値:
- 同じクエリインスタンス
registerStoredProcedureParameter
StoredProcedureQuery registerStoredProcedureParameter(int position, ClassSE type, ParameterMode mode)
位置パラメーターを登録します。すべてのパラメーターを登録する必要があります。- パラメーター:
position- パラメーターの位置type- パラメーターの型mode- パラメーターモード- 戻り値:
- 同じクエリインスタンス
registerStoredProcedureParameter
StoredProcedureQuery registerStoredProcedureParameter(StringSE parameterName, ClassSE type, ParameterMode mode)
名前付きパラメーターを登録します。- パラメーター:
parameterName- メタデータに登録または指定されているパラメーターの名前type- パラメーターの型mode- パラメーターモード- 戻り値:
- 同じクエリインスタンス
getOutputParameterValue
ObjectSE getOutputParameterValue(int position)
INOUT または OUT パラメーターを介してプロシージャから返された値を取得します。移植性のために、結果セットと更新カウントに対応するすべての結果は、出力パラメーターの値の前に取得する必要があります。- パラメーター:
position- パラメーターの位置- 戻り値:
- パラメーターを介して返される結果
- 例外:
IllegalArgumentExceptionSE- 位置がクエリのパラメーターに対応していないか、INOUT または OUT パラメーターではない場合
getOutputParameterValue
ObjectSE getOutputParameterValue(StringSE parameterName)
INOUT または OUT パラメーターを介してプロシージャから返された値を取得します。移植性のために、結果セットと更新カウントに対応するすべての結果は、出力パラメーターの値の前に取得する必要があります。- パラメーター:
parameterName- メタデータに登録または指定されているパラメーターの名前- 戻り値:
- パラメーターを介して返される結果
- 例外:
IllegalArgumentExceptionSE- パラメーター名がクエリのパラメーターに対応していないか、INOUT または OUT パラメーターではない場合
execute
boolean execute()
最初の結果が結果セットに対応する場合は true を返し、それが更新カウントである場合、INOUT および OUT パラメーターを介して以外に結果がない場合は false を返します。- 戻り値:
- 最初の結果が結果セットに対応する場合は true
- 例外:
QueryTimeoutException- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
executeUpdate
int executeUpdate()
保留中の結果がない場合、または最初の結果が更新カウントでない場合は、更新カウント -1 を返します。プロバイダーは、必要に応じてクエリでexecuteを呼び出します。- 次で指定:
- インターフェース
QueryのexecuteUpdate - 戻り値:
- 更新カウント。保留中の結果がない場合、または次の結果が更新カウントでない場合は -1。
- 例外:
TransactionRequiredException- トランザクションがないか、永続コンテキストがトランザクションに参加していない場合QueryTimeoutException- ステートメントの実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
getResultList
ListSE getResultList()
次の結果セットから結果のリストを取得します。プロバイダーは、必要に応じてクエリでexecuteを呼び出します。REF_CURSOR結果セットがある場合は、REF_CURSORパラメーターが照会に登録された順序で取得されます。- 次で指定:
- インターフェース
QueryのgetResultList - 戻り値:
- 結果のリストまたは null が次の項目である場合は結果セットではありません
- 例外:
QueryTimeoutException- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
getSingleResult
ObjectSE getSingleResult()
次の結果セットから単一の結果を取得します。プロバイダーは、必要に応じてクエリでexecuteを呼び出します。REF_CURSOR結果セットがある場合は、REF_CURSORパラメーターが照会に登録された順序で取得されます。- 次で指定:
- インターフェース
QueryのgetSingleResult - 戻り値:
- 結果、または次の項目が結果セットでない場合は null
- 例外:
NoResultException- 次の結果セットに結果がない場合NonUniqueResultException- 複数の結果の場合QueryTimeoutException- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
hasMoreResults
boolean hasMoreResults()
次の結果が結果セットに対応する場合は true を返し、更新カウントである場合、INOUT パラメーターと OUT パラメーターを介して以外に結果がない場合は false を返します。- 戻り値:
- 次の結果が結果セットに対応する場合は true
- 例外:
QueryTimeoutException- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合
getUpdateCount
int getUpdateCount()
更新カウントを返すか、保留中の結果がない場合、次の結果が更新カウントでない場合は -1 を返します。- 戻り値:
- 更新カウントまたは保留中の結果がない場合、または次の結果が更新カウントでない場合は -1
- 例外:
QueryTimeoutException- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合PersistenceException- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合