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 を返します。INOUT
または OUT
パラメーターの値が抽出される前に処理される必要があります。getResultList
および getUpdateCount
を介して返された結果を使い果たした後、INOUT
および OUT
パラメーターを介して返された結果を取得できます。getOutputParameterValue
メソッドは、INOUT
および OUT
パラメーターを介してプロシージャから返された値を取得するために使用されます。REF_CURSOR
パラメーターを使用する場合、getResultList
を呼び出して結果セットを取得する前に、更新カウントを使い果たす必要があります。または、getOutputParameterValue
を使用して REF_CURSOR
結果セットを取得することもできます。結果セットマッピングは、REF_CURSOR
パラメーターがクエリに登録された順序で、REF_CURSOR
パラメーターに対応する結果に適用されます。INOUT
および OUT
パラメーターを介してのみ結果が返される最も単純なケースでは、execute
の直後に getOutputParameterValue
への呼び出しを続けることができます。修飾子と型 | メソッドと説明 |
---|---|
boolean | execute() 最初の結果が結果セットに対応する場合は true を返し、それが更新カウントである場合、INOUT および OUT パラメーターを介して以外に結果がない場合は false を返します。 |
int | executeUpdate() 保留中の結果がない場合、または最初の結果が更新カウントでない場合は、更新カウント -1 を返します。 |
ObjectSE | getOutputParameterValue(int position) INOUT または OUT パラメーターを介してプロシージャから返された値を取得します。 |
ObjectSE | getOutputParameterValue(StringSE parameterName) INOUT または OUT パラメーターを介してプロシージャから返された値を取得します。 |
ListSE | getResultList() 次の結果セットから結果のリストを取得します。 |
ObjectSE | getSingleResult() 次の結果セットから単一の結果を取得します。 |
int | getUpdateCount() 更新カウントを返すか、保留中の結果がない場合、次の結果が更新カウントでない場合は -1 を返します。 |
boolean | hasMoreResults() 次の結果が結果セットに対応する場合は true を返し、更新カウントである場合、INOUT パラメーターと OUT パラメーターを介して以外に結果がない場合は false を返します。 |
StoredProcedureQuery | registerStoredProcedureParameter(int position, ClassSE type, ParameterMode mode) 位置パラメーターを登録します。 |
StoredProcedureQuery | registerStoredProcedureParameter(StringSE parameterName, ClassSE type, ParameterMode mode) 名前付きパラメーターを登録します。 |
StoredProcedureQuery | setFlushMode(FlushModeType flushMode) クエリの実行に使用されるフラッシュモードの種類を設定します。 |
StoredProcedureQuery | setHint(StringSE hintName, ObjectSE value) クエリのプロパティまたはヒントを設定します。 |
StoredProcedureQuery | setParameter(int position, CalendarSE value, TemporalType temporalType) java.util.Calendar のインスタンスを定位置パラメーターにバインドします。 |
StoredProcedureQuery | setParameter(int position, DateSE value, TemporalType temporalType) java.util.Date のインスタンスを定位置パラメーターにバインドします。 |
StoredProcedureQuery | setParameter(int position, ObjectSE value) 引数値を定位置パラメーターにバインドします。 |
StoredProcedureQuery | setParameter(Parameter<CalendarSE> param, CalendarSE value, TemporalType temporalType) java.util.Calendar のインスタンスを Parameter オブジェクトにバインドします。 |
StoredProcedureQuery | setParameter(Parameter<DateSE> param, DateSE value, TemporalType temporalType) java.util.Date のインスタンスを Parameter オブジェクトにバインドします。 |
<T> StoredProcedureQuery | setParameter(Parameter<T> param, T value) Parameter オブジェクトの値をバインドします。 |
StoredProcedureQuery | setParameter(StringSE name, CalendarSE value, TemporalType temporalType) java.util.Calendar のインスタンスを名前付きパラメーターにバインドします。 |
StoredProcedureQuery | setParameter(StringSE name, DateSE value, TemporalType temporalType) java.util.Date のインスタンスを名前付きパラメーターにバインドします。 |
StoredProcedureQuery | setParameter(StringSE name, ObjectSE value) 引数値を名前付きパラメーターにバインドします。 |
getFirstResult, getFlushMode, getHints, getLockMode, getMaxResults, getParameter, getParameter, getParameter, getParameter, getParameters, getParameterValue, getParameterValue, getParameterValue, getResultStream, isBound, setFirstResult, setLockMode, setMaxResults, unwrap
StoredProcedureQuery setHint(StringSE hintName, ObjectSE value)
Query
の setHint
hintName
- プロパティまたはヒントの名前 value
- プロパティまたはヒントの値 IllegalArgumentExceptionSE
- 2 番目の引数が実装に有効でない場合 <T> StoredProcedureQuery setParameter(Parameter<T> param, T value)
Parameter
オブジェクトの値をバインドします。Query
の setParameter
param
- パラメーターオブジェクト value
- パラメーター値 IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターに対応していない場合 StoredProcedureQuery setParameter(Parameter<CalendarSE> param, CalendarSE value, TemporalType temporalType)
java.util.Calendar
のインスタンスを Parameter
オブジェクトにバインドします。Query
の setParameter
param
- パラメーターオブジェクト value
- パラメーター値 temporalType
- 時間型 IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターに対応していない場合 StoredProcedureQuery setParameter(Parameter<DateSE> param, DateSE value, TemporalType temporalType)
java.util.Date
のインスタンスを Parameter
オブジェクトにバインドします。Query
の setParameter
param
- パラメーターオブジェクト value
- パラメーター値 temporalType
- 時間型 IllegalArgumentExceptionSE
- パラメーターがクエリのパラメーターに対応していない場合 StoredProcedureQuery setParameter(StringSE name, ObjectSE value)
Query
の setParameter
name
- パラメーター名 value
- パラメーター値 IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していない場合、または引数の型が正しくない場合 StoredProcedureQuery setParameter(StringSE name, CalendarSE value, TemporalType temporalType)
java.util.Calendar
のインスタンスを名前付きパラメーターにバインドします。Query
の setParameter
name
- パラメーター名 value
- パラメーター値 temporalType
- 時間型 IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していない場合、または値の引数の型が正しくない場合 StoredProcedureQuery setParameter(StringSE name, DateSE value, TemporalType temporalType)
java.util.Date
のインスタンスを名前付きパラメーターにバインドします。Query
の setParameter
name
- パラメーター名 value
- パラメーター値 temporalType
- 時間型 IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していない場合、または値の引数の型が正しくない場合 StoredProcedureQuery setParameter(int position, ObjectSE value)
Query
の setParameter
position
- 位置 value
- パラメーター値 IllegalArgumentExceptionSE
- 位置がクエリの位置パラメーターに対応していない場合、または引数の型が正しくない場合 StoredProcedureQuery setParameter(int position, CalendarSE value, TemporalType temporalType)
java.util.Calendar
のインスタンスを定位置パラメーターにバインドします。Query
の setParameter
position
- 位置 value
- パラメーター値 temporalType
- 時間型 IllegalArgumentExceptionSE
- 位置がクエリの位置パラメーターに対応していない場合、または値の引数の型が正しくない場合 StoredProcedureQuery setParameter(int position, DateSE value, TemporalType temporalType)
java.util.Date
のインスタンスを定位置パラメーターにバインドします。Query
の setParameter
position
- 位置 value
- パラメーター値 temporalType
- 時間型 IllegalArgumentExceptionSE
- 位置がクエリの位置パラメーターに対応していない場合、または値の引数の型が正しくない場合 StoredProcedureQuery setFlushMode(FlushModeType flushMode)
Query
の setFlushMode
flushMode
- フラッシュモード StoredProcedureQuery registerStoredProcedureParameter(int position, ClassSE type, ParameterMode mode)
position
- パラメーターの位置 type
- パラメーターの型 mode
- パラメーターモード StoredProcedureQuery registerStoredProcedureParameter(StringSE parameterName, ClassSE type, ParameterMode mode)
parameterName
- メタデータに登録または指定されているパラメーターの名前 type
- パラメーターの型 mode
- パラメーターモード ObjectSE getOutputParameterValue(int position)
position
- パラメーターの位置 IllegalArgumentExceptionSE
- 位置がクエリのパラメーターに対応していないか、INOUT または OUT パラメーターではない場合 ObjectSE getOutputParameterValue(StringSE parameterName)
parameterName
- メタデータに登録または指定されているパラメーターの名前 IllegalArgumentExceptionSE
- パラメーター名がクエリのパラメーターに対応していないか、INOUT または OUT パラメーターではない場合 boolean execute()
QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合 PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合 int executeUpdate()
execute
を呼び出します。Query
の executeUpdate
TransactionRequiredException
- トランザクションがないか、永続コンテキストがトランザクションに参加していない場合 QueryTimeoutException
- ステートメントの実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合 PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合 ListSE getResultList()
execute
を呼び出します。REF_CURSOR
結果セットがある場合は、REF_CURSOR
パラメーターが照会に登録された順序で取得されます。Query
の getResultList
QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合 PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合 ObjectSE getSingleResult()
execute
を呼び出します。REF_CURSOR
結果セットがある場合は、REF_CURSOR
パラメーターが照会に登録された順序で取得されます。Query
の getSingleResult
NoResultException
- 次の結果セットに結果がない場合 NonUniqueResultException
- 複数の結果の場合 QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合 PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合 boolean hasMoreResults()
QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合 PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合 int getUpdateCount()
QueryTimeoutException
- クエリ実行が設定されたクエリタイムアウト値を超え、ステートメントのみがロールバックされる場合 PersistenceException
- クエリ実行が設定されたクエリタイムアウト値を超え、トランザクションがロールバックされた場合 Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.