Package org.apache.openjpa.persistence
Class StoredProcedureQueryImpl
- java.lang.Object
-
- org.apache.openjpa.persistence.StoredProcedureQueryImpl
-
- All Implemented Interfaces:
jakarta.persistence.Query,jakarta.persistence.StoredProcedureQuery
public class StoredProcedureQueryImpl extends java.lang.Object implements jakarta.persistence.StoredProcedureQueryImplements Store Procedure based query for JPA facade.
Astored procedure querydiffers from other query types because it may return more than one result set, apart from an optional update count, whereas the traditional query processing in OpenJPA via the abstractions ofResultObjectProviderandResultassumed that a query will return its result in a single list.
This query resorts to a callback mechanism, where the execution of the query returns not a result, but acallback objectthat can be used to callback to OpenJPA kernel to get a series of results via the traditional result processing pathway.- Author:
- Pinaki Poddar, Romain Manni-Bucau
-
-
Constructor Summary
Constructors Constructor Description StoredProcedureQueryImpl(java.lang.String procedureName, MultiQueryMetaData meta, QueryImpl<?> delegate)Construct a query for executing a Stored Procedure.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanexecute()Executes this receiver by delegation to the underlying executable query.intexecuteUpdate()OpenJPAQuery<?>getDelegate()Gets the facade delegate that manages bind parameters on behalf of this receiver.QuerygetExecutableQuery()Gets the kernel delegate that is handles actual execution on behalf of this receiver.intgetFirstResult()jakarta.persistence.FlushModeTypegetFlushMode()java.util.Map<java.lang.String,java.lang.Object>getHints()jakarta.persistence.LockModeTypegetLockMode()intgetMaxResults()java.lang.ObjectgetOutputParameterValue(int position)java.lang.ObjectgetOutputParameterValue(java.lang.String parameterName)jakarta.persistence.Parameter<?>getParameter(int position)<T> jakarta.persistence.Parameter<T>getParameter(int position, java.lang.Class<T> type)jakarta.persistence.Parameter<?>getParameter(java.lang.String name)<T> jakarta.persistence.Parameter<T>getParameter(java.lang.String name, java.lang.Class<T> type)java.util.Set<jakarta.persistence.Parameter<?>>getParameters()java.lang.ObjectgetParameterValue(int position)<T> TgetParameterValue(jakarta.persistence.Parameter<T> param)java.lang.ObjectgetParameterValue(java.lang.String name)java.util.ListgetResultList()java.lang.ObjectgetSingleResult()intgetUpdateCount()booleanhasMoreResults()booleanisBound(jakarta.persistence.Parameter<?> param)jakarta.persistence.StoredProcedureQueryregisterStoredProcedureParameter(int position, java.lang.Class type, jakarta.persistence.ParameterMode mode)jakarta.persistence.StoredProcedureQueryregisterStoredProcedureParameter(java.lang.String name, java.lang.Class type, jakarta.persistence.ParameterMode mode)jakarta.persistence.QuerysetFirstResult(int startPosition)jakarta.persistence.StoredProcedureQuerysetFlushMode(jakarta.persistence.FlushModeType flushMode)jakarta.persistence.StoredProcedureQuerysetHint(java.lang.String hintName, java.lang.Object value)jakarta.persistence.QuerysetLockMode(jakarta.persistence.LockModeType lockMode)jakarta.persistence.QuerysetMaxResults(int maxResult)jakarta.persistence.StoredProcedureQuerysetParameter(int position, java.lang.Object value)jakarta.persistence.StoredProcedureQuerysetParameter(int position, java.util.Calendar value, jakarta.persistence.TemporalType temporalType)jakarta.persistence.StoredProcedureQuerysetParameter(int position, java.util.Date value, jakarta.persistence.TemporalType temporalType)jakarta.persistence.StoredProcedureQuerysetParameter(jakarta.persistence.Parameter<java.util.Calendar> param, java.util.Calendar cal, jakarta.persistence.TemporalType temporalType)jakarta.persistence.StoredProcedureQuerysetParameter(jakarta.persistence.Parameter<java.util.Date> param, java.util.Date value, jakarta.persistence.TemporalType temporalType)<T> jakarta.persistence.StoredProcedureQuerysetParameter(jakarta.persistence.Parameter<T> param, T value)jakarta.persistence.StoredProcedureQuerysetParameter(java.lang.String name, java.lang.Object value)jakarta.persistence.StoredProcedureQuerysetParameter(java.lang.String name, java.util.Calendar cal, jakarta.persistence.TemporalType temporalType)jakarta.persistence.StoredProcedureQuerysetParameter(java.lang.String name, java.util.Date date, jakarta.persistence.TemporalType temporalType)java.lang.StringtoString()<T> Tunwrap(java.lang.Class<T> cls)
-
-
-
Constructor Detail
-
StoredProcedureQueryImpl
public StoredProcedureQueryImpl(java.lang.String procedureName, MultiQueryMetaData meta, QueryImpl<?> delegate)Construct a query for executing a Stored Procedure.- Parameters:
procedureName- name of the database stored procedure.meta-delegate- the delegate which manages bind parameters on behalf of this
-
-
Method Detail
-
getDelegate
public OpenJPAQuery<?> getDelegate()
Gets the facade delegate that manages bind parameters on behalf of this receiver.- Returns:
-
getExecutableQuery
public Query getExecutableQuery()
Gets the kernel delegate that is handles actual execution on behalf of this receiver.- Returns:
-
execute
public boolean execute()
Executes this receiver by delegation to the underlying executable query.
This method is multi-call safe. The underlying executable query is executed only for the first invocation. Subsequent- Specified by:
executein interfacejakarta.persistence.StoredProcedureQuery
-
getResultList
public java.util.List getResultList()
- Specified by:
getResultListin interfacejakarta.persistence.Query- Specified by:
getResultListin interfacejakarta.persistence.StoredProcedureQuery
-
getSingleResult
public java.lang.Object getSingleResult()
- Specified by:
getSingleResultin interfacejakarta.persistence.Query- Specified by:
getSingleResultin interfacejakarta.persistence.StoredProcedureQuery
-
hasMoreResults
public boolean hasMoreResults()
- Specified by:
hasMoreResultsin interfacejakarta.persistence.StoredProcedureQuery
-
getUpdateCount
public int getUpdateCount()
- Specified by:
getUpdateCountin interfacejakarta.persistence.StoredProcedureQuery
-
executeUpdate
public int executeUpdate()
- Specified by:
executeUpdatein interfacejakarta.persistence.Query- Specified by:
executeUpdatein interfacejakarta.persistence.StoredProcedureQuery
-
getParameter
public <T> jakarta.persistence.Parameter<T> getParameter(java.lang.String name, java.lang.Class<T> type)- Specified by:
getParameterin interfacejakarta.persistence.Query
-
getParameter
public <T> jakarta.persistence.Parameter<T> getParameter(int position, java.lang.Class<T> type)- Specified by:
getParameterin interfacejakarta.persistence.Query
-
isBound
public boolean isBound(jakarta.persistence.Parameter<?> param)
- Specified by:
isBoundin interfacejakarta.persistence.Query
-
getParameterValue
public <T> T getParameterValue(jakarta.persistence.Parameter<T> param)
- Specified by:
getParameterValuein interfacejakarta.persistence.Query
-
unwrap
public <T> T unwrap(java.lang.Class<T> cls)
- Specified by:
unwrapin interfacejakarta.persistence.Query
-
setParameter
public <T> jakarta.persistence.StoredProcedureQuery setParameter(jakarta.persistence.Parameter<T> param, T value)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(jakarta.persistence.Parameter<java.util.Calendar> param, java.util.Calendar cal, jakarta.persistence.TemporalType temporalType)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(jakarta.persistence.Parameter<java.util.Date> param, java.util.Date value, jakarta.persistence.TemporalType temporalType)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
registerStoredProcedureParameter
public jakarta.persistence.StoredProcedureQuery registerStoredProcedureParameter(int position, java.lang.Class type, jakarta.persistence.ParameterMode mode)- Specified by:
registerStoredProcedureParameterin interfacejakarta.persistence.StoredProcedureQuery
-
registerStoredProcedureParameter
public jakarta.persistence.StoredProcedureQuery registerStoredProcedureParameter(java.lang.String name, java.lang.Class type, jakarta.persistence.ParameterMode mode)- Specified by:
registerStoredProcedureParameterin interfacejakarta.persistence.StoredProcedureQuery
-
getOutputParameterValue
public java.lang.Object getOutputParameterValue(int position)
- Specified by:
getOutputParameterValuein interfacejakarta.persistence.StoredProcedureQuery
-
getOutputParameterValue
public java.lang.Object getOutputParameterValue(java.lang.String parameterName)
- Specified by:
getOutputParameterValuein interfacejakarta.persistence.StoredProcedureQuery
-
setMaxResults
public jakarta.persistence.Query setMaxResults(int maxResult)
- Specified by:
setMaxResultsin interfacejakarta.persistence.Query
-
getMaxResults
public int getMaxResults()
- Specified by:
getMaxResultsin interfacejakarta.persistence.Query
-
setFirstResult
public jakarta.persistence.Query setFirstResult(int startPosition)
- Specified by:
setFirstResultin interfacejakarta.persistence.Query
-
getFirstResult
public int getFirstResult()
- Specified by:
getFirstResultin interfacejakarta.persistence.Query
-
getHints
public java.util.Map<java.lang.String,java.lang.Object> getHints()
- Specified by:
getHintsin interfacejakarta.persistence.Query
-
getParameters
public java.util.Set<jakarta.persistence.Parameter<?>> getParameters()
- Specified by:
getParametersin interfacejakarta.persistence.Query
-
getParameter
public jakarta.persistence.Parameter<?> getParameter(java.lang.String name)
- Specified by:
getParameterin interfacejakarta.persistence.Query
-
getParameter
public jakarta.persistence.Parameter<?> getParameter(int position)
- Specified by:
getParameterin interfacejakarta.persistence.Query
-
getParameterValue
public java.lang.Object getParameterValue(java.lang.String name)
- Specified by:
getParameterValuein interfacejakarta.persistence.Query
-
getParameterValue
public java.lang.Object getParameterValue(int position)
- Specified by:
getParameterValuein interfacejakarta.persistence.Query
-
getFlushMode
public jakarta.persistence.FlushModeType getFlushMode()
- Specified by:
getFlushModein interfacejakarta.persistence.Query
-
setLockMode
public jakarta.persistence.Query setLockMode(jakarta.persistence.LockModeType lockMode)
- Specified by:
setLockModein interfacejakarta.persistence.Query
-
getLockMode
public jakarta.persistence.LockModeType getLockMode()
- Specified by:
getLockModein interfacejakarta.persistence.Query
-
setHint
public jakarta.persistence.StoredProcedureQuery setHint(java.lang.String hintName, java.lang.Object value)- Specified by:
setHintin interfacejakarta.persistence.Query- Specified by:
setHintin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(java.lang.String name, java.lang.Object value)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(java.lang.String name, java.util.Calendar cal, jakarta.persistence.TemporalType temporalType)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(java.lang.String name, java.util.Date date, jakarta.persistence.TemporalType temporalType)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(int position, java.lang.Object value)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(int position, java.util.Calendar value, jakarta.persistence.TemporalType temporalType)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setParameter
public jakarta.persistence.StoredProcedureQuery setParameter(int position, java.util.Date value, jakarta.persistence.TemporalType temporalType)- Specified by:
setParameterin interfacejakarta.persistence.Query- Specified by:
setParameterin interfacejakarta.persistence.StoredProcedureQuery
-
setFlushMode
public jakarta.persistence.StoredProcedureQuery setFlushMode(jakarta.persistence.FlushModeType flushMode)
- Specified by:
setFlushModein interfacejakarta.persistence.Query- Specified by:
setFlushModein interfacejakarta.persistence.StoredProcedureQuery
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-