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( ...

Get Java Data Objects now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.