Table A-1 specifies the values returned by the JDOHelper lifecycle state interrogation methods for all the JDO lifecycle states.
State of instance |
isPersistent( ) |
isTransactional( ) |
isDirty( ) |
isNew( ) |
isDeleted( ) |
---|---|---|---|---|---|
Transient |
false |
false |
false |
false |
false |
Transient-clean |
false |
true |
false |
false |
false |
Transient-dirty |
false |
true |
true |
false |
false |
Hollow |
true |
false |
false |
false |
false |
Persistent-nontransactional |
true |
false |
false |
false |
false |
Persistent-new |
true |
true |
true |
true |
false |
Persistent-clean |
true |
true |
false |
false |
false |
Persistent-dirty |
true |
true |
true |
false |
false |
Persistent-deleted |
true |
true |
true |
false |
true |
Persistent-new-deleted |
true |
true |
true |
true |
true |
Table A-2 and Table A-3 contain the state transitions for every lifecycle state.
Current state | |||||
---|---|---|---|---|---|
Method |
Transient |
P-new |
P-clean |
P-dirty |
Hollow |
makePersistent |
P-new |
unchanged |
unchanged |
unchanged |
unchanged |
deletePersistent |
error |
P-new-del |
P-del |
P-del |
P-del |
makeTransactional |
T-clean |
unchanged |
unchanged |
unchanged |
P-clean |
makeNontransactional |
error |
error |
P-nontrans |
error |
unchanged |
makeTransient |
unchanged |
error |
Transient |
error |
Transient |
commit withRetainValues = false |
unchanged |
Hollow |
Hollow |
Hollow |
unchanged |
commit withRetainValues = true |
unchanged |
P-nontrans |
P-nontrans |
P-nontrans |
unchanged |
rollback with RestoreValues = false |
unchanged |
Transient |
Hollow |
Hollow |
unchanged |
rollback with RestoreValues = true |
unchanged |
Transient |
P-nontrans |
P-nontrans |
unchanged |
refresh with active datastore transaction |
unchanged |
unchanged |
unchanged |
P-clean |
unchanged |
refresh with active optimistic transaction |
unchanged |
unchanged |
unchanged |
P-nontrans |
unchanged |
evict |
n/a |
unchanged |
Hollow |
unchanged |
unchanged |
read field outsideof a transaction |
unchanged |
impossible |
impossible |
impossible |
P-nontrans |
read field with active optimistic transaction |
unchanged |
unchanged |
unchanged |
unchanged |
P-nontrans |
read field with active datastore transaction |
unchanged |
unchanged |
unchanged |
unchanged |
P-clean |
write field or makeDirty outside of a transaction |
unchanged |
impossible |
impossible |
impossible |
P-nontrans |
write field or makeDirty with active transaction |
unchanged |
unchanged |
P-dirty |
unchanged |
P-dirty |
retrieve outside of a transaction or with active optimistic transaction |
unchanged |
unchanged |
unchanged |
unchanged |
P-nontrans |
retrieve with active datastore transaction |
unchanged |
unchanged |
unchanged |
unchanged |
P-clean |
error: a JDOUserException is thrown; the state does not change
Current state | |||||
---|---|---|---|---|---|
T-clean |
T-dirty |
P-new-del |
P-del |
P-nontrans |
Method |
P-new |
P-new |
unchanged |
unchanged |
unchanged |
makePersistent |
error |
error |
unchanged |
unchanged |
P-del |
deletePersistent |
unchanged |
unchanged |
unchanged |
unchanged |
P-clean |
makeTransactional |
Transient |
error |
error |
error |
unchanged |
makeNontransactional |
unchanged |
unchanged |
error |
error |
Transient |
makeTransient |
unchanged |
T-clean |
Transient |
Transient |
unchanged |
commit withRetainValues = false |
unchanged |
T-clean |
Transient |
Transient |
unchanged |
commit withRetainValues = true |
unchanged |
T-clean |
Transient |
Hollow |
unchanged |
rollback withRestoreValues = false |
unchanged |
T-clean |
Transient |
P-nontrans |
unchanged |
rollback withRestoreValues = true |
unchanged |
unchanged |
unchanged |
unchanged |
unchanged |
refresh with active datastore transaction |
unchanged |
unchanged |
unchanged |
unchanged |
unchanged |
refresh with active optimistic transaction |
unchanged |
unchanged |
unchanged |
unchanged |
Hollow |
evict |
unchanged |
impossible |
impossible |
impossible |
unchanged |
read field outsideof a transaction |
unchanged |
unchanged |
error |
error |
unchanged |
read field with active optimistic transaction |
unchanged |
unchanged |
error |
error |
P-clean |
read field with active datastore transaction |
unchanged |
impossible |
impossible |
impossible |
unchanged |
write field or makeDirty outside of a transaction |
T-dirty |
unchanged |
error |
error |
P-dirty |
write field or makeDirty with active transaction |
unchanged |
unchanged |
unchanged |
unchanged |
unchanged |
retrieve outside of a transaction or with active optimistic transaction |
unchanged |
unchanged |
unchanged |
unchanged |
P-clean |
retrieve with an active datastore transaction |
unchanged: no state change takes place; no exception is thrown due to the state change