public interface StoredProcedureQuery extends Query
ストアドプロシージャーのクエリーの実行は、以下のように制御されるでしょう。
setParameter
メソッドはすべての必須なIN
パラメーターとINOUT
パラメーターの値を設定するために使用されます。
ストアドプロシージャーによってデフォルト値が定義されているストアドプロシージャーのパラメーターの値を設定する必要はありません。StoredProcedureQuery
オブジェクトのgetResultList
やgetSingleResult
が呼び出されると、
実行されていないストアドプロシージャーのクエリーに対して
プロバイダはgetResultList
またはgetSingleResult
を処理する前に、
execute
を呼び出すでしょう。StoredProcedureQuery
オブジェクトのexecuteUpdate
が呼び出されると、
プロバイダは実行されていないストアドプロシージャーのexecute
の実行に続いてgetUpdateCount
を実行します。
executeUpdate
の結果はgetUpdateCount
の結果になるでしょう。execute
メソッドは、最も一般的なケース
(複数の結果セットおよび/または更新件数、場合によっては出力パラメータ値とも組み合わされる)だけでなく、
スカラー結果がINOUT
およびOUT
パラメータを介して戻される単純なケースもサポートします。execute
メソッドは、最初の結果が結果セットの場合はtrueを返し、
更新件数の場合や、INOUT
およびOUT
パラメーターがあったとしても、それ以外の結果がない場合はfalseを返します。execute
メソッドがtrueを返した場合、保留された結果セットはgetResultList
やgetSingleResult
を呼び出すことで取得できます。hasMoreResults
メソッドはさらに結果があるかどうかの確認に使用することができます。execute
またはhasMoreResults
がfalseを返した場合、
getUpdateCount
メソッドを呼び出して、更新件数の場合は保留中の結果を取得できます。
getUpdateCount
メソッドは更新件数(ゼロ以上)を、更新件数が存在しない場合(つまり、次の結果が結果セットである場合、もしくは次の更新件数がない場合)は-1を返します。INOUT
やOUT
パラメータの値が抽出される前に、
JDBC結果セットおよび更新件数に対応する結果を処理する必要があります。getResultList
やgetUpdateCount
で返された結果が枯渇した後、
INOUT
およびOUT
パラメーターによって返される結果を取得できます。getOutputParameterValue
メソッドは、プロシージャーからINOUT
およびOUT
パラメーターを介して戻された値を取得するために使用されます。REF_CURSOR
パラメータを使用する場合、getResultList
を呼び出して結果セットを取得する前に更新件数を枯渇させる必要があります。
代わりにREF_CURSOR
結果セットはgetOutputParameterValue
を使用して取得できます。
結果セットのマッピングはREF_CURSOR
パラメーターがクエリに登録された順序でREF_CURSOR
パラメーターに対応する結果に適用されます。INOUT
およびOUT
パラメータを介してのみ返される最も単純なケースでは、
execute
に続けてすぐにgetOutputParameterValue
を呼び出すことができます。修飾子とタイプ | メソッドと説明 |
---|---|
boolean |
execute()
最初の結果が結果セットに対応する場合はtrueを返し、更新件数の場合や、INOUTおよびOUTパラメーター以外の結果が存在しない場合はfalseを返します。
|
int |
executeUpdate()
保留中の結果がない場合や最初の結果が更新件数でない場合は、更新件数-1を返します。
|
java.lang.Object |
getOutputParameterValue(int position)
プロシージャーからINOUTまたはOUTパラメーターを介して戻された値を戻します。
|
java.lang.Object |
getOutputParameterValue(java.lang.String parameterName)
プロシージャーからINOUTまたはOUTパラメーターを介して戻された値を戻します。
|
java.util.List |
getResultList()
次の結果セットから結果のリストを取得します。
|
java.lang.Object |
getSingleResult()
次の結果セットから単一の結果を取得します。
|
int |
getUpdateCount()
更新件数を返すか、保留している結果が存在しない場合や次の結果が更新件数でない場合は-1を返します。
|
boolean |
hasMoreResults()
次の結果が結果セットに対応する場合はtrueを返し、更新件数の場合や、INOUTおよびOUTパラメーター以外の結果が存在しない場合はfalseを返します。
|
StoredProcedureQuery |
registerStoredProcedureParameter(int position,
java.lang.Class type,
ParameterMode mode)
位置指定のパラメーターのを登録します。
|
StoredProcedureQuery |
registerStoredProcedureParameter(java.lang.String parameterName,
java.lang.Class type,
ParameterMode mode)
名前付きパラメーターを登録します。
|
StoredProcedureQuery |
setFlushMode(FlushModeType flushMode)
クエリーの実行に使用されるフラッシュモードタイプを設定します。
|
StoredProcedureQuery |
setHint(java.lang.String hintName,
java.lang.Object value)
クエリーのプロパティもしくはヒントを設定します。
|
StoredProcedureQuery |
setParameter(int position,
java.util.Calendar value,
TemporalType temporalType)
位置指定のパラメーターに
java.util.Calendar のインスタンスをバインドします。 |
StoredProcedureQuery |
setParameter(int position,
java.util.Date value,
TemporalType temporalType)
位置指定のパラメーターに
java.util.Date のインスタンスをバインドします。 |
StoredProcedureQuery |
setParameter(int position,
java.lang.Object value)
位置指定のパラメーターに引数の値をバインドします。
|
StoredProcedureQuery |
setParameter(Parameter<java.util.Calendar> param,
java.util.Calendar value,
TemporalType temporalType)
Parameter オブジェクトにjava.util.Calendar のインスタンスをバインドします。 |
StoredProcedureQuery |
setParameter(Parameter<java.util.Date> param,
java.util.Date value,
TemporalType temporalType)
Parameter オブジェクトにjava.util.Date のインスタンスをバインドします。 |
<T> StoredProcedureQuery |
setParameter(Parameter<T> param,
T value)
Parameter オブジェクトの値をバインドします。 |
StoredProcedureQuery |
setParameter(java.lang.String name,
java.util.Calendar value,
TemporalType temporalType)
名前付きパラメーターに
java.util.Calendar のインスタンスをバインドします。 |
StoredProcedureQuery |
setParameter(java.lang.String name,
java.util.Date value,
TemporalType temporalType)
名前付きパラメーターに
java.util.Date のインスタンスをバインドします。 |
StoredProcedureQuery |
setParameter(java.lang.String name,
java.lang.Object value)
名前付きパラメーターに引数の値をバインドします。
|
getFirstResult, getFlushMode, getHints, getLockMode, getMaxResults, getParameter, getParameter, getParameter, getParameter, getParameters, getParameterValue, getParameterValue, getParameterValue, getResultStream, isBound, setFirstResult, setLockMode, setMaxResults, unwrap
StoredProcedureQuery setHint(java.lang.String hintName, java.lang.Object value)
<T> StoredProcedureQuery setParameter(Parameter<T> param, T value)
Parameter
オブジェクトの値をバインドします。setParameter
インタフェース内 Query
param
- パラメーターオブジェクトvalue
- パラメーターの値java.lang.IllegalArgumentException
- クエリーのパラメーターに対応するパラメーターが存在しない場合StoredProcedureQuery setParameter(Parameter<java.util.Calendar> param, java.util.Calendar value, TemporalType temporalType)
Parameter
オブジェクトにjava.util.Calendar
のインスタンスをバインドします。setParameter
インタフェース内 Query
param
- パラメーターオブジェクトvalue
- パラメーターの値temporalType
- 時制の型java.lang.IllegalArgumentException
- クエリーのパラメーターに対応するパラメーターが存在しない場合StoredProcedureQuery setParameter(Parameter<java.util.Date> param, java.util.Date value, TemporalType temporalType)
Parameter
オブジェクトにjava.util.Date
のインスタンスをバインドします。setParameter
インタフェース内 Query
param
- パラメーターオブジェクトvalue
- パラメーターの値temporalType
- 時制の型java.lang.IllegalArgumentException
- クエリーのパラメーターに対応するパラメーターが存在しない場合StoredProcedureQuery setParameter(java.lang.String name, java.lang.Object value)
setParameter
インタフェース内 Query
name
- パラメーターの名前value
- パラメーターの値java.lang.IllegalArgumentException
- パラメーター名に適合するパラメーターがクエリーに存在しないか、引数が不正な型の場合StoredProcedureQuery setParameter(java.lang.String name, java.util.Calendar value, TemporalType temporalType)
java.util.Calendar
のインスタンスをバインドします。setParameter
インタフェース内 Query
name
- パラメーターの名前value
- パラメーターの値temporalType
- 時制の型java.lang.IllegalArgumentException
- パラメーター名に適合するパラメーターがクエリーに存在しないか、引数が不正な型の場合StoredProcedureQuery setParameter(java.lang.String name, java.util.Date value, TemporalType temporalType)
java.util.Date
のインスタンスをバインドします。setParameter
インタフェース内 Query
name
- パラメーターの名前value
- パラメーターの値temporalType
- 時制の型java.lang.IllegalArgumentException
- パラメーター名に適合するパラメーターがクエリーに存在しないか、引数が不正な型の場合StoredProcedureQuery setParameter(int position, java.lang.Object value)
setParameter
インタフェース内 Query
position
- 位置value
- パラメーターの値java.lang.IllegalArgumentException
- 位置に適合する位置指定のパラメーターがクエリーに存在しないか、引数が不正な型の場合StoredProcedureQuery setParameter(int position, java.util.Calendar value, TemporalType temporalType)
java.util.Calendar
のインスタンスをバインドします。setParameter
インタフェース内 Query
position
- 位置value
- パラメーターの値temporalType
- 時制の型java.lang.IllegalArgumentException
- 位置に適合する位置指定のパラメーターがクエリーに存在しないか、引数が不正な型の場合StoredProcedureQuery setParameter(int position, java.util.Date value, TemporalType temporalType)
java.util.Date
のインスタンスをバインドします。setParameter
インタフェース内 Query
position
- 位置value
- パラメーターの値temporalType
- 時制の型java.lang.IllegalArgumentException
- 位置に適合する位置指定のパラメーターがクエリーに存在しないか、引数が不正な型の場合StoredProcedureQuery setFlushMode(FlushModeType flushMode)
setFlushMode
インタフェース内 Query
flushMode
- フラッシュモードStoredProcedureQuery registerStoredProcedureParameter(int position, java.lang.Class type, ParameterMode mode)
position
- パラメーターの位置type
- パラメーターの型mode
- パラメーターの形式StoredProcedureQuery registerStoredProcedureParameter(java.lang.String parameterName, java.lang.Class type, ParameterMode mode)
parameterName
- 登録されているかメタデータで指定されているパラメーターの名前type
- パラメーターの型mode
- パラメーターの形式java.lang.Object getOutputParameterValue(int position)
position
- パラメーターの位置java.lang.IllegalArgumentException
- 位置がクエリーのパラメーターに対応しない場合、またはINOUTまたはOUTパラメータでない場合java.lang.Object getOutputParameterValue(java.lang.String parameterName)
parameterName
- メタデータに登録または指定されたパラメーターの名前java.lang.IllegalArgumentException
- パラメーター名がクエリーのパラメーターに対応しない場合、またはINOUTまたはOUTパラメータでない場合boolean execute()
QueryTimeoutException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、そのステートメントだけがロールバックされる場合PersistenceException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、トランザクションがロールバックされる場合int executeUpdate()
execute
を呼び出します。executeUpdate
インタフェース内 Query
TransactionRequiredException
- トランザクションが存在しない場合、
または永続化コンテキストがトランザクションに参加していない場合QueryTimeoutException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、そのステートメントだけがロールバックされる場合PersistenceException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、トランザクションがロールバックされる場合java.util.List getResultList()
execute
を呼び出します。
REF_CURSOR
結果セットが存在する場合はREF_CURSOR
パラメーターがクエリーに登録された順に取得されます。getResultList
インタフェース内 Query
QueryTimeoutException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、そのステートメントだけがロールバックされる場合PersistenceException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、トランザクションがロールバックされる場合java.lang.Object getSingleResult()
execute
を呼び出します。
REF_CURSOR
結果セットが存在する場合はREF_CURSOR
パラメーターがクエリーに登録された順に取得されます。getSingleResult
インタフェース内 Query
NoResultException
- 次の結果セットに結果が存在しない場合NonUniqueResultException
- 二つ以上の結果が存在した場合QueryTimeoutException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、そのステートメントだけがロールバックされる場合PersistenceException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、トランザクションがロールバックされる場合boolean hasMoreResults()
QueryTimeoutException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、そのステートメントだけがロールバックされる場合PersistenceException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、トランザクションがロールバックされる場合int getUpdateCount()
QueryTimeoutException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、そのステートメントだけがロールバックされる場合PersistenceException
- クエリーの実行がクエリーの設定されたタイムアウト値を超え、トランザクションがロールバックされる場合Translated by @megascus.