The following tables present an overview of the state transitions that occur as a result of the considered operations on the JDO instances.
Required States
State Operation |
Transient (T) |
Persistent-new (PN) |
Persistent-new-deleted (PNDel) |
Persistent-clean (PC) |
Persistent-dirty (PDi) |
Persistent-deleted (PDel) |
Hollow (H) |
makePersistent |
PN |
- |
- |
- |
- |
- |
- |
makeTransient |
- |
error |
T |
error |
error |
T |
|
makeTransactional |
TC |
- |
- |
- |
- |
- |
PC in a data store transaction PCT* in an optimistic transaction Unchanged outside a transaction |
makeNontransactional |
error |
error |
error |
PNT |
error |
error |
- |
deletePersistent |
error |
PNDel |
- |
PDel |
PDel |
- |
PDel |
evict |
- |
- |
- |
H |
- |
- |
- |
- |
- |
- |
- |
PC in a data store transaction PNT outside or in an optimistic transaction |
- |
- |
|
retrieve |
- |
- |
- |
- |
- |
- |
PC in a data store transaction PNT outside or in an optimistic transaction |
reload |
- |
- |
- |
- |
- |
- |
PC in a data store transaction PNT outside or in an optimistic transaction |
commit |
- |
H |
T |
PNT (retainValues = true) H (retainValues = false) |
error |
error |
error |
rollback |
- |
T |
T |
PNT (restoreValues = true) H (restoreValues = false) |
PNT (restoreValues = true) H (restoreValues = false) |
PNT (restoreValues = true) H (restoreValues = false) |
error |
- |
Impossible outside a transaction Unchanged in an optimistic or data store transaction |
Impossible outside a transaction Error in an optimistic or data store transaction |
Impossible outside a transaction Unchanged in an optimistic or data store transaction |
Impossible outside a transaction Unchanged in an optimistic or data store transaction |
Impossible outside a transaction Error in an optimistic or data store transaction |
PC in a data store transaction PNT outside or in an optimistic transaction |
|
writeField makeDirty |
- |
Impossible outside a transaction Unchanged in an active transaction |
Impossible outside a transaction Error in an active transaction |
PDi in an active transaction PNT in an optimistic transaction |
Impossible outside a transaction Unchanged in an active transaction |
Impossible outside a transaction Error in an active transaction |
PDi in an active transaction PNT outside a transaction |
* Persistent-clean-transactional (PCT) is an SAP-specific state. It remains transparent to applications.
Optional States
State Operation |
Persistent-nontransactional (PNT) |
Transient-clean (TC) |
Transient-dirty (TDi) |
makePersistent |
- |
PN |
PN |
makeTransient |
T |
- |
- |
makeTransactional |
PC in a data store transaction PCT in an optimistic transaction Unchanged outside a transaction |
- |
- |
makeNontransactional |
- |
T |
error |
deletePersistent |
PDel |
- |
- |
evict |
H |
- |
- |
refresh |
- |
- |
- |
retrieve |
PC in a data store transaction Unchanged outside or in an optimistic transaction |
- |
- |
reload |
PC in a data store transaction Unchanged outside or in an optimistic transaction |
- |
- |
commit |
error |
- |
TC |
rollback |
error |
- |
TC |
readField |
PC in a data store transaction Unchanged outside or in an optimistic transaction |
- |
- |
writeField makeDirty |
PDi in an active transaction Unchanged outside a transaction |
TDi in an active transaction Unchanged outside a transaction |
- |