12.1 Transactional Fields

A JDO implementation manages two kinds of fields: persistent fields that are stored in the datastore and transactional fields. A transactional field is not persistent, but it participates in a transaction by having its values restored if a rollback occurs. Persistent and transactional fields are referred to collectively as managed fields. The state of a transactional field is saved before certain lifecycle-state transitions, so it can be restored if a transaction rollback occurs. The JDO implementation modifies a transactional field only during rollback for instances that have been modified by your application.

You specify that a field is transactional by setting its persistence-modifier attribute to "transactional" in the metadata. A transactional field can be of any type; there are no restrictions. The JDO implementation mediates the modification of a transactional field, but it does not mediate field reads.