Package org.apache.cayenne.tx
Class BaseTransaction
java.lang.Object
org.apache.cayenne.tx.BaseTransaction
- All Implemented Interfaces:
Transaction
- Direct Known Subclasses:
CayenneTransaction
,ExternalTransaction
public abstract class BaseTransaction extends Object implements Transaction
A Cayenne transaction. Currently supports managing JDBC connections.
- Since:
- 4.0
-
Field Summary
Fields Modifier and Type Field Description protected Map<String,Connection>
connections
protected int
defaultIsolationLevel
protected TransactionDescriptor
descriptor
protected Collection<TransactionListener>
listeners
protected int
status
protected static int
STATUS_ACTIVE
protected static int
STATUS_COMMITTED
protected static int
STATUS_COMMITTING
protected static int
STATUS_MARKED_ROLLEDBACK
protected static int
STATUS_NO_TRANSACTION
protected static int
STATUS_ROLLEDBACK
protected static int
STATUS_ROLLING_BACK
-
Constructor Summary
Constructors Modifier Constructor Description protected
BaseTransaction(TransactionDescriptor descriptor)
Creates new inactive transaction. -
Method Summary
Modifier and Type Method Description protected Connection
addConnection(String connectionName, Connection connection)
void
addListener(TransactionListener listener)
void
begin()
Starts a Transaction.static void
bindThreadTransaction(Transaction transaction)
Binds a Transaction to the current thread.protected void
close()
Closes all connections associated with transaction.void
commit()
protected void
connectionAdded(Connection connection)
Map<String,Connection>
getConnections()
Returns all connections associated with the transaction.protected Connection
getExistingConnection(String name)
Connection
getOrCreateConnection(String connectionName, DataSource dataSource)
Retrieves a connection for the given symbolic name.static Transaction
getThreadTransaction()
Returns a Transaction associated with the current thread, or null if there is no such Transaction.boolean
isRollbackOnly()
protected abstract void
processCommit()
protected abstract void
processRollback()
void
rollback()
void
setRollbackOnly()
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.apache.cayenne.tx.Transaction
isExternal
-
Field Details
-
STATUS_ACTIVE
protected static final int STATUS_ACTIVE- See Also:
- Constant Field Values
-
STATUS_COMMITTING
protected static final int STATUS_COMMITTING- See Also:
- Constant Field Values
-
STATUS_COMMITTED
protected static final int STATUS_COMMITTED- See Also:
- Constant Field Values
-
STATUS_ROLLEDBACK
protected static final int STATUS_ROLLEDBACK- See Also:
- Constant Field Values
-
STATUS_ROLLING_BACK
protected static final int STATUS_ROLLING_BACK- See Also:
- Constant Field Values
-
STATUS_NO_TRANSACTION
protected static final int STATUS_NO_TRANSACTION- See Also:
- Constant Field Values
-
STATUS_MARKED_ROLLEDBACK
protected static final int STATUS_MARKED_ROLLEDBACK- See Also:
- Constant Field Values
-
connections
-
listeners
-
status
protected int status -
defaultIsolationLevel
protected int defaultIsolationLevel -
descriptor
-
-
Constructor Details
-
BaseTransaction
Creates new inactive transaction.
-
-
Method Details
-
bindThreadTransaction
Binds a Transaction to the current thread. -
getThreadTransaction
Returns a Transaction associated with the current thread, or null if there is no such Transaction. -
setRollbackOnly
public void setRollbackOnly()- Specified by:
setRollbackOnly
in interfaceTransaction
-
isRollbackOnly
public boolean isRollbackOnly()- Specified by:
isRollbackOnly
in interfaceTransaction
-
addListener
- Specified by:
addListener
in interfaceTransaction
-
begin
public void begin()Starts a Transaction. If Transaction is not started explicitly, it will be started when the first connection is added.- Specified by:
begin
in interfaceTransaction
-
commit
public void commit()- Specified by:
commit
in interfaceTransaction
-
processCommit
protected abstract void processCommit() -
rollback
public void rollback()- Specified by:
rollback
in interfaceTransaction
-
processRollback
protected abstract void processRollback() -
getConnections
Description copied from interface:Transaction
Returns all connections associated with the transaction.- Specified by:
getConnections
in interfaceTransaction
- Returns:
- connections associated with the transaction.
-
getOrCreateConnection
public Connection getOrCreateConnection(String connectionName, DataSource dataSource) throws SQLExceptionDescription copied from interface:Transaction
Retrieves a connection for the given symbolic name. If it does not exists, creates a new connection using provided DataSource, and registers it internally.- Specified by:
getOrCreateConnection
in interfaceTransaction
- Parameters:
connectionName
- a symbolic name of the connection. Cayenne DataNodes generate a name in the form of "DataNode.Connection.nodename".dataSource
- DataSource that provides new connections.- Returns:
- a connection that participates in the current transaction.
- Throws:
SQLException
-
getExistingConnection
-
addConnection
-
connectionAdded
-
close
protected void close()Closes all connections associated with transaction.
-