- JDO implementations and vendors
- DO instances
- JDO environments
- Persistent vs. Transient
- Transactional vs. Non-transactional
- Support for transactional/persistent instances
- JDO identity
- What's next?
As well as being transient or persistent, a JDO instance may be transactional or non-transactional.
A transactional instance is one whose persistent and transactional field values will be cached by the JDO implementation when the instance is first involved with a transaction. Upon commit() the cached field values will be discarded, but on rollback() the cached values will be restored into those fields.
Recall that the persistence descriptor can be used to declare a persistence modifier for each field, identifying that field as persistent, transactional, or none. Persistent fields are synchronized with the data store and are managed transactionally. Transactional fields are not synchronized to the data store but are managed transactionally. Hence the caching of field values and rollback processing applies to fields that are persistent and fields that are transactional.
A non-transactional instance is one that is not subject to transactional rollback. Its persistent and transactional field values are not cached or restored by the JDO implementation.
Most typically a transient instance would be non-transactional and a persistent instance would be transactional.