Provides implementations of the JDO Query interface, and ways of extracting an Object from the Query result set.

Queries

Queries take Query as a base class and are extended by the actual query type. So we have JDOQLQuery to represent JDOQL queries, SQLQuery to represent SQL queries, etc. A Query is compiled, generating SQL, and then executed, generating a ResultSet.

Query Results

When a Query is executed it creates a ResultSet. This is returned to the user in the form of a QueryResult which is an implementation of a List. The user can iterate through this.

Extracting results from queries

We need to extract the results into the form the user requries. This is the role of ResultObjectFactory's. The PersistentIDROF provides a way to convert a row of a ResultSet into a persistent object. The TransientIDROF provides a way to convert a row of ResultSet into a non-durable object. The third type ResultExpressionROF provides a way to convert a row of a ResultSet into an array of Object's