Class PostgreSQLCallQuery
java.lang.Object
org.castor.cpa.persistence.sql.driver.PostgreSQLCallQuery
- All Implemented Interfaces:
PersistenceQuery
PersistenceQuery implementation for use with PostgreSQL stored functions
returning instance, which can be fetched only through SELECT of
fields of the instance.
- Version:
- $Revision: 8104 $ $Date: 2006-04-11 15:26:07 -0600 (Tue, 11 Apr 2006) $
- Author:
- Rostislav Beloff, Oleg Nitz
-
Constructor Summary
ConstructorsConstructorDescriptionPostgreSQLCallQuery(String call, Class<?>[] types, Class<?> javaClass, String[] fields, int[] sqlTypes) -
Method Summary
Modifier and TypeMethodDescriptionbooleanabsolute(int row) Moves the result of the query to the absolute position in the resultset.voidclose()Close the query and release all resources held by the query.voidexecute(Object conn, AccessMode accessMode, boolean scrollable) Execute the query with the give connection and lock type.voidfetch(ProposedEntity proposedObject) Loades the object.intClass<?> getParameterType(int index) Class<?> Returns the type of object returned by this query.nextIdentity(Identity identity) Returns the identity of the next object to be returned.voidsetParameter(int index, Object value) Sets the value of a paramter.intsize()Finds the size of the resulting resultset from the query.
-
Constructor Details
-
PostgreSQLCallQuery
-
-
Method Details
-
absolute
Description copied from interface:PersistenceQueryMoves the result of the query to the absolute position in the resultset.- Specified by:
absolutein interfacePersistenceQuery- Parameters:
row- The row to move to- Throws:
PersistenceException- A persistence error occured
-
size
Description copied from interface:PersistenceQueryFinds the size of the resulting resultset from the query.- Specified by:
sizein interfacePersistenceQuery- Throws:
PersistenceException
-
getParameterCount
public int getParameterCount() -
getParameterType
- Throws:
ArrayIndexOutOfBoundsException
-
setParameter
public void setParameter(int index, Object value) throws ArrayIndexOutOfBoundsException, IllegalArgumentException Description copied from interface:PersistenceQuerySets the value of a paramter. Will complain if the parameter is not of the specified type.- Specified by:
setParameterin interfacePersistenceQuery- Parameters:
index- The parameter indexvalue- The parameter value- Throws:
ArrayIndexOutOfBoundsExceptionIllegalArgumentException
-
getResultType
Description copied from interface:PersistenceQueryReturns the type of object returned by this query.- Specified by:
getResultTypein interfacePersistenceQuery- Returns:
- The type of object returned by this query
-
execute
public void execute(Object conn, AccessMode accessMode, boolean scrollable) throws PersistenceException Description copied from interface:PersistenceQueryExecute the query with the give connection and lock type. After a successful return the query results will be returned by callingPersistenceQuery.nextIdentity(org.exolab.castor.persist.spi.Identity)andPersistenceQuery.fetch(org.castor.persist.ProposedEntity). The query parameters will be reset. A new query may be issued by providing new query parameters and callingPersistenceQuery.execute(Object, AccessMode, boolean).- Specified by:
executein interfacePersistenceQuery- Parameters:
conn- An open connectionaccessMode- The access mode (null equals shared)scrollable- The db cursor mode.- Throws:
PersistenceException- An invalid query or an error reported by the persistence engine.
-
nextIdentity
Description copied from interface:PersistenceQueryReturns the identity of the next object to be returned. Calling this method multiple time will skip objects. When the result set has been exhuasted, this method will return null.- Specified by:
nextIdentityin interfacePersistenceQuery- Parameters:
identity- The identity of the previous object, null if this method is called for the first time- Returns:
- The identity of the next object, null if the result set has been exhausted
- Throws:
PersistenceException- An error reported by the persistence engine
-
close
public void close()Description copied from interface:PersistenceQueryClose the query and release all resources held by the query.- Specified by:
closein interfacePersistenceQuery
-
fetch
Description copied from interface:PersistenceQueryLoades the object. This method must be called immediately afterPersistenceQuery.nextIdentity(org.exolab.castor.persist.spi.Identity)with the same identity.If the object is locked by another transaction this method will block until the lock is released, or a timeout occured. If a timeout occurs or the object has been deleted by the other transaction, this method will report an
. The query may proceed to the next identity.invalid reference
ObjectNotFoundExceptionThis method is equivalent to
Persistence.load(java.lang.Object, org.castor.persist.ProposedEntity, org.exolab.castor.persist.spi.Identity, org.exolab.castor.mapping.AccessMode)with a known cache engine and access mode and acts on the query results rather than issuing a new query to load the object.- Specified by:
fetchin interfacePersistenceQuery- Parameters:
proposedObject- The fields to load into- Throws:
PersistenceException- The object was not found in persistent storage or any other persistence error occured.- See Also:
-