Testing complex object graphs with circular and bidirectional references when
using database foreign key settings (without support of deferred foreign keys).
author: Matthew Baird author: In an app server environment, where we have a transaction manager, we author: use the transactionmanager and it's associated JTA transaction to associate author: with the ODMG transaction.
Implements an algorithm for reordering the object envelopes of a pending
transaction to minimized the probability of foreign key constraint
violations.
The algorithm is based on a graph theoretical approach: Each object
envelope is represented by a vertex in a graph.
TransactionAware is an interface that can be implemented
to provide hooks into the Transaction interface provided
by ObJectRelationalBridge.
Only objects which have a write lock acquired on them can
participate in a transaction.
To kill a transaction, implement beforeCommit() and throw
a TransactionAbortedException.