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>connectionsprotected intdefaultIsolationLevelprotected TransactionDescriptordescriptorprotected Collection<TransactionListener>listenersprotected intstatusprotected static intSTATUS_ACTIVEprotected static intSTATUS_COMMITTEDprotected static intSTATUS_COMMITTINGprotected static intSTATUS_MARKED_ROLLEDBACKprotected static intSTATUS_NO_TRANSACTIONprotected static intSTATUS_ROLLEDBACKprotected static intSTATUS_ROLLING_BACK
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseTransaction(TransactionDescriptor descriptor)Creates new inactive transaction.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected ConnectionaddConnection(String connectionName, Connection connection)voidaddListener(TransactionListener listener)voidbegin()Starts a Transaction.static voidbindThreadTransaction(Transaction transaction)Binds a Transaction to the current thread.protected voidclose()Closes all connections associated with transaction.voidcommit()protected voidconnectionAdded(Connection connection)Map<String,Connection>getConnections()Returns all connections associated with the transaction.protected ConnectiongetExistingConnection(String name)ConnectiongetOrCreateConnection(String connectionName, DataSource dataSource)Retrieves a connection for the given symbolic name.static TransactiongetThreadTransaction()Returns a Transaction associated with the current thread, or null if there is no such Transaction.booleanisRollbackOnly()protected abstract voidprocessCommit()protected abstract voidprocessRollback()voidrollback()voidsetRollbackOnly()-
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 Detail
-
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
protected Map<String,Connection> connections
-
listeners
protected Collection<TransactionListener> listeners
-
status
protected int status
-
defaultIsolationLevel
protected int defaultIsolationLevel
-
descriptor
protected TransactionDescriptor descriptor
-
-
Constructor Detail
-
BaseTransaction
protected BaseTransaction(TransactionDescriptor descriptor)
Creates new inactive transaction.
-
-
Method Detail
-
bindThreadTransaction
public static void bindThreadTransaction(Transaction transaction)
Binds a Transaction to the current thread.
-
getThreadTransaction
public static Transaction getThreadTransaction()
Returns a Transaction associated with the current thread, or null if there is no such Transaction.
-
setRollbackOnly
public void setRollbackOnly()
- Specified by:
setRollbackOnlyin interfaceTransaction
-
isRollbackOnly
public boolean isRollbackOnly()
- Specified by:
isRollbackOnlyin interfaceTransaction
-
addListener
public void addListener(TransactionListener listener)
- Specified by:
addListenerin 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:
beginin interfaceTransaction
-
commit
public void commit()
- Specified by:
commitin interfaceTransaction
-
processCommit
protected abstract void processCommit()
-
rollback
public void rollback()
- Specified by:
rollbackin interfaceTransaction
-
processRollback
protected abstract void processRollback()
-
getConnections
public Map<String,Connection> getConnections()
Description copied from interface:TransactionReturns all connections associated with the transaction.- Specified by:
getConnectionsin interfaceTransaction- Returns:
- connections associated with the transaction.
-
getOrCreateConnection
public Connection getOrCreateConnection(String connectionName, DataSource dataSource) throws SQLException
Description copied from interface:TransactionRetrieves 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:
getOrCreateConnectionin 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
protected Connection getExistingConnection(String name)
-
addConnection
protected Connection addConnection(String connectionName, Connection connection)
-
connectionAdded
protected void connectionAdded(Connection connection)
-
close
protected void close()
Closes all connections associated with transaction.
-
-