O'Reilly logo

Java Data Objects by Craig Russell, David Jordan

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Transient-Transactional Instances

You can cause transient instances to observe transaction boundaries, such that their state is preserved at commit and restored on rollback. A transient instance that observes transaction boundaries is called a transient-transactional instance . Support for transient-transactional instances is optional; their use requires support of the optional TransientTransactional feature. If your implementation does not support TransientTransactional, it will not include the functionality that causes the state transitions associated with transient-transactional instances.

You can use the following PersistenceManager methods to make transient instances transactional:

void makeTransactional(Object obj);
void makeTransactionalAll(Object[] objs);
void makeTransactionalAll(Collection objs);

After these methods complete, the instances observe transaction boundaries. If the transaction commits, the transient-transactional instances retain their values. The makeTransactional( ) method throws a JDOUnsupportedOptionException if you pass a transient instance as a parameter and the implementation does not support the optional TransientTransactional feature.

If the call to makeTransactional( ) is made within the current transaction and the transaction is rolled back, the fields of the transient-transactional instances are restored to the values they had when makeTransactional( ) was called, using their captured before image (discussed in Chapter 14). If the call to makeTransactional( ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required