3.2. The JDO Basics

The JDO specification defines 20 or so classes and interfaces in total, but a developer needs to know only five main classes (which are actually Java interfaces):

  • PersistenceManagerFactory

  • PersistenceManager

  • Extent

  • Query

  • Transaction

Figure 3-3 provides a simplified class diagram showing how these interfaces are related:

Figure 3-3. A simplified JDO class diagram.


A PersistenceManagerFactory is used to get a PersistenceManager instance. There is a one-to-many relationship between the PersistenceManagerFactory and the PersistenceManager. A PersistenceManagerFactory can create and manage many PersistenceManager instances and even implement pooling of PersistenceManager instances.

A PersistenceManager embodies a connection to a datastore and a cache of in-memory persistent objects. The PersistenceManager interface is the primary means by which the application interacts with the underlying datastore and in-memory persistent objects.

From a PersistenceManager, the application can get one or more Query instances. A Query is how the application can find a persistent object by its field values.

In addition to a Query, the application can get an Extent from a PersistenceManager. An Extent represents all the instances of a specified class (and optionally subclasses) stored in the datastore and can be used as input to a Query or iterated through in its own right.

A Transaction allows the application to control the transaction boundaries in the underlying datastore. There is a one-to-one correlation between a Transaction and a PersistenceManager; there can be only one ongoing transaction per PersistenceManager instance. Transactions must be explicitly started, and either committed or aborted.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset