Package org.exolab.castor.persist
Class QueryResults
java.lang.Object
org.exolab.castor.persist.QueryResults
The result of a query in the context of a transaction. A query is
executed against the cache engine in the context of a transaction.
The result of a query is this object that can be used to obtain
the next object in the query.
- Version:
- $Revision: 7951 $ $Date: 2006-04-22 11:05:30 -0600 (Sat, 22 Apr 2006) $
- Author:
- Assaf Arkin
-
Constructor Summary
ConstructorsConstructorDescriptionQueryResults
(TransactionContext tx, LockEngine engine, PersistenceQuery query, AccessMode accessMode, Database db) -
Method Summary
Modifier and TypeMethodDescriptionboolean
absolute
(int row) void
close()
Close the query and release all resources held by the query.fetch()
Loads the specified object with the identity.getQuery()
Returns the associated query.Returns the type of object returned by this query.Returns the transaction context in which this query was opened.Returns the identity of the next object to be returned.int
size()
-
Constructor Details
-
QueryResults
public QueryResults(TransactionContext tx, LockEngine engine, PersistenceQuery query, AccessMode accessMode, Database db)
-
-
Method Details
-
getTransaction
Returns the transaction context in which this query was opened. The transaction may be closed.- Returns:
- The query's transaction context
-
getQuery
Returns the associated query.- Returns:
- The query
-
getResultType
Returns the type of object returned by this query.- Returns:
- The type of object returned by this query
-
nextIdentity
Returns 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.- Returns:
- The identity of the next object
- Throws:
PersistenceException
- An error reported by the persistence engineTransactionNotInProgressException
- The transaction has been closed
-
fetch
Loads the specified object with the identity. The identity must have been retrieved with a call tonextIdentity()
.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.
If the object has been deleted in this transaction, this method will report an. However, the caller may iterate to and obtain the next object.
This method is equivalent to
TransactionContext.fetch(org.exolab.castor.persist.ClassMolder, org.exolab.castor.persist.spi.Identity, org.exolab.castor.mapping.AccessMode)
with a know cache engine, identity and lock and acts on the query results rather than issuing a new query to load the object.- Returns:
- The loaded object
- Throws:
PersistenceException
- An error reported by the persistence engine. The object was not found in persistent storage. The transaction has been closed. Could not acquire a lock on the object.
-
close
public void close()Close the query and release all resources held by the query. -
absolute
- Throws:
PersistenceException
-
size
- Throws:
PersistenceException
-