9.3. JDO API Extensions

9.3.1. KodoPersistenceManagerFactory
9.3.2. KodoPersistenceManager
9.3.3. KodoQuery
9.3.4. KodoExtent
9.3.5. KodoDataStoreCache
9.3.6. QueryResultCache
9.3.7. KodoFetchPlan
9.3.8. KodoJDOHelper

The following sections outline the runtime interfaces you can use to access Kodo-specific functionality from JDO. Each interface contains services and convenience methods missing from the JDO specification. Kodo strives to use the same naming conventions and API patterns as standard JDO methods in all extensions, so that Kodo JDO APIs feel as much as possible like standard JDO APIs.

9.3.1. KodoPersistenceManagerFactory

The kodo.jdo.KodoPersistenceManagerFactory interface extends the basic javax.jdo.PersistenceManagerFactory with Kodo-specific features. The KodoPersistenceManagerFactory offers APIs to obtain managed and unmanaged PersistenceManagers from the same factory, to access the query cache, and to perform other Kodo-specific operations. See the interface Javadoc for details.

9.3.2. KodoPersistenceManager

All Kodo PersistenceManagers implement the kodo.jdo.KodoPersistenceManager interface. This interface extends the standard javax.jdo.PersistenceManager. Just as the standard PersistenceManager is the primary window into JDO runtime services, the KodoPersistenceManager is the primary window from JDO into Kodo-specific functionality. We strongly encourage you to investigate the API extensions this interface contains.

9.3.3. KodoQuery

Kodo extends JDO's standard query functionality with the kodo.jdo.KodoQuery interface. See its Javadoc for details on the convenience methods it provides.

9.3.4. KodoExtent

The kodo.jdo.KodoExtent offers convenience methods not found in standard javax.jdo.Extents.

9.3.5. KodoDataStoreCache

Kodo expands JDO's standard javax.jdo.datastore.DataStoreCache interface with the kodo.jdo.KodoDataStoreCache. Section 10.1, “Data Cache” has detailed information on Kodo's data caching system, including the KodoDataStoreCache.

9.3.6. QueryResultCache

Kodo includes a JDO-flavored facade to its internal query cache. The kodo.jdo.QueryResultCache includes APIs much like those in the DataStoreCache, but acting on queries rather than persistent objects. See Section 10.1.3, “Query Cache” for details on query caching in Kodo.

9.3.7. KodoFetchPlan

The kodo.jdo.KodoFetchPlan adds additional options to the standard kodo.jdo.FetchPlan for fine-tuning data loading. Its APIs include large result set support and lock level control, among others.

Kodo goes one step further, extending KodoFetchPlan with kodo.jdo.jdbc.JDBCFetchPlan to add additional JDBC-specific tuning methods. Unless you have customized Kodo to use a non-relational back-end (see Section 9.9, “Non-Relational Stores”), all JDO FetchPlans in Kodo implement JDBCFetchPlan, so feel free to cast to this interface.

9.3.8. KodoJDOHelper

The kodo.jdo.KodoJDOHelper is a static helper class that adds Kodo-specific utility methods to javax.jdo.JDOHelper.