org.exolab.castor.persist.spi
public interface PersistenceQuery
The caller takes full responsibility to assure integrity of transactions and object caching and only relies on the engine to assist in assuring that through the mechanisms available to it.
A query may be created once and used multiple times by calling the {@link #execute} method. Query parameters are set each time prior to executing the query.
See {@link Persistence} for information about locks, loading objects, identities and stamps.
Version: $Revision: 1.1.1.1 $ $Date: 2003/03/03 07:08:51 $
See Also: Persistence
Method Summary | |
---|---|
boolean | absolute(int row)
moves the result of the query to the absolute position in the
resultset |
void | close()
Close the query and release all resources held by the query. |
void | execute(Object conn, AccessMode accessMode)
Execute the query with the give connection and lock type.
|
void | execute(Object conn, AccessMode accessMode, boolean scrollable)
same as above, but parameterized for scrollable resultsets. |
Object | fetch(Object[] fields, Object identity)
Loades the object. |
int | getParameterCount()
Returns the number of parameters required for this query.
|
Class | getParameterType(int index)
Returns the type of a parameter required by this query. |
Class | getResultType()
Returns the type of object returned by this query.
|
Object | nextIdentity(Object identity)
Returns the identity of the next object to be returned.
|
void | setParameter(int index, Object value)
Sets the value of a paramter. |
int | size()
finds the size of the resulting resultset from the query. |
Parameters: int The row to move to
Throws: PersistenceException A persistence error occured
Parameters: conn An open connection accessMode The access mode (null equals shared)
Throws: QueryException An invalid query PersistenceException An error reported by the persistence engine
Parameters: conn An open connection accessMode The access mode (null equals shared) scrollable The db cursor mode.
Throws: QueryException An invalid query PersistenceException An error reported by the persistence engine
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 {@link ObjectNotFoundException}. The query may proceed to the next identity.
This method is equivalent to {@link Persistence#load} with a known cache engine and access mode and acts on the query results rather than issuing a new query to load the object.
Parameters: fields The fields to load into identity The object's identity
Returns: The object's stamp, or null
Throws: ObjectNotFoundException The object was not found in persistent storage PersistenceException A persistence error occured
See Also: Persistence
Returns: Number of query parameters
Parameters: index The parameter index
Returns: Type of parameter, or null
Returns: The type of object returned by this query
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
Parameters: index The parameter index value The parameter value