javax.jdo
Interface Transaction
public interface Transaction
The JDO
Transaction
interface provides for initiation and
completion of transactions under user control.
It is a sub-interface of the
PersistenceManager
that deals with options and transaction demarcation.
Transaction options include whether optimistic concurrency
control should be used for the current transaction, whether instances
may hold values in the cache outside transactions, and whether
values should be retained in the cache after transaction completion. These
options are valid for both managed and non-managed transactions.
Transaction initiation and completion methods have similar semantics to
javax.transaction.UserTransaction
when used outside a managed
environment. When used in a managed environment, transaction initiation
and completion methods may only be used with bean-managed transaction
semantics.
void | begin() - Begin a transaction.
|
void | commit() - Commit the current transaction.
|
boolean | getNontransactionalRead() - If
true , allows persistent instances to be read without
a transaction active.
|
boolean | getNontransactionalWrite() - If
true , allows persistent instances to be written without
a transaction active.
|
boolean | getOptimistic() - Optimistic transactions do not hold data store locks until commit time.
|
PersistenceManager | getPersistenceManager() - The
Transaction instance is always associated with exactly
one PersistenceManager .
|
boolean | getRestoreValues() - Return the current value of the restoreValues property.
|
boolean | getRetainValues() - If
true , at commit time instances retain their field
values.
|
boolean | getRollbackOnly() - Returns the rollback-only status of the transaction.
|
Synchronization | getSynchronization() - The user-specified
Synchronization instance for this
Transaction instance.
|
boolean | isActive() - Returns whether there is a transaction currently active.
|
void | rollback() - Roll back the current transaction.
|
void | setNontransactionalRead(boolean nontransactionalRead) - If
true , allow persistent instances to be read without
a transaction active.
|
void | setNontransactionalWrite(boolean nontransactionalWrite) - If
true , allow persistent instances to be written without
a transaction active.
|
void | setOptimistic(boolean optimistic) - Optimistic transactions do not hold data store locks until commit time.
|
void | setRestoreValues(boolean restoreValues) - If
true , at rollback, fields of newly persistent instances
are restored to
their values as of the beginning of the transaction, and the instances
revert to transient.
|
void | setRetainValues(boolean retainValues) - If
true , at commit instances retain their values and the
instances transition to persistent-nontransactional.
|
void | setRollbackOnly() - Sets the rollback-only status of the transaction to
true .
|
void | setSynchronization(Synchronization sync) - The user can specify a
Synchronization instance to be
notified on transaction completions.
|
begin
public void begin()
Begin a transaction. The type of transaction is determined by the
setting of the Optimistic flag.
commit
public void commit()
Commit the current transaction.
getNontransactionalRead
public boolean getNontransactionalRead()
If true
, allows persistent instances to be read without
a transaction active.
- the value of the nontransactionalRead property
getNontransactionalWrite
public boolean getNontransactionalWrite()
If true
, allows persistent instances to be written without
a transaction active.
- the value of the nontransactionalWrite property
getOptimistic
public boolean getOptimistic()
Optimistic transactions do not hold data store locks until commit time.
- the value of the Optimistic property.
getPersistenceManager
public PersistenceManager getPersistenceManager()
The Transaction
instance is always associated with exactly
one PersistenceManager
.
- the
PersistenceManager
for this
Transaction
instance
getRestoreValues
public boolean getRestoreValues()
Return the current value of the restoreValues property.
- the value of the restoreValues property
getRetainValues
public boolean getRetainValues()
If true
, at commit time instances retain their field
values.
- the value of the retainValues property
getRollbackOnly
public boolean getRollbackOnly()
Returns the rollback-only status of the transaction. When
begun, the rollback-only status is false. Either the
application or the JDO implementation may set this flag
using setRollbackOnly.
true
if the transaction has been
marked for rollback.
getSynchronization
public Synchronization getSynchronization()
The user-specified Synchronization
instance for this
Transaction
instance.
- the user-specified
Synchronization
instance.
isActive
public boolean isActive()
Returns whether there is a transaction currently active.
true
if the transaction is active.
rollback
public void rollback()
Roll back the current transaction.
setNontransactionalRead
public void setNontransactionalRead(boolean nontransactionalRead)
If true
, allow persistent instances to be read without
a transaction active.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
nontransactionalRead
- the value of the nontransactionalRead
property
setNontransactionalWrite
public void setNontransactionalWrite(boolean nontransactionalWrite)
If true
, allow persistent instances to be written without
a transaction active.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
nontransactionalWrite
- the value of the nontransactionalRead
property
setOptimistic
public void setOptimistic(boolean optimistic)
Optimistic transactions do not hold data store locks until commit time.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
optimistic
- the value of the Optimistic flag.
setRestoreValues
public void setRestoreValues(boolean restoreValues)
If
true
, at rollback, fields of newly persistent instances
are restored to
their values as of the beginning of the transaction, and the instances
revert to transient. Additionally, fields of modified
instances of primitive types and immutable reference types
are restored to their values as of the beginning of the
transaction.
If
false
, at rollback, the values of fields of
newly persistent instances are unchanged and the instances revert to
transient. Additionally, dirty instances transition to hollow.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
restoreValues
- the value of the restoreValues property
setRetainValues
public void setRetainValues(boolean retainValues)
If true
, at commit instances retain their values and the
instances transition to persistent-nontransactional.
If an implementation does not support this option, a
JDOUnsupportedOptionException
is thrown.
retainValues
- the value of the retainValues property
setRollbackOnly
public void setRollbackOnly()
Sets the rollback-only status of the transaction to true
.
After this flag is set to true
, the transaction
can no longer be committed, and any attempt to commit the
transaction will throw JDOUserException
.
setSynchronization
public void setSynchronization(Synchronization sync)
The user can specify a
Synchronization
instance to be
notified on transaction completions. The
beforeCompletion
method is called prior to flushing instances to the data store.
The
afterCompletion
method is called after performing
state transitions of persistent and transactional instances, following
the data store commit or rollback operation.
Only one
Synchronization
instance can be registered with
the
Transaction
. If the application requires more than one
instance to receive synchronization callbacks, then the single
application instance is responsible for managing them, and forwarding
callbacks to them.
sync
- the Synchronization
instance to be notified;
null
for none