Package org.apache.cayenne.tx
Class BaseTransaction
java.lang.Object
org.apache.cayenne.tx.BaseTransaction
- All Implemented Interfaces:
Transaction
- Direct Known Subclasses:
CayenneTransaction
,ExternalTransaction
A Cayenne transaction. Currently supports managing JDBC connections.
- Since:
- 4.0
-
Field Summary
Modifier and TypeFieldDescriptionprotected Map
<String, Connection> protected int
protected TransactionDescriptor
protected Collection
<TransactionListener> protected int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
protected static final int
-
Constructor Summary
ModifierConstructorDescriptionprotected
BaseTransaction
(TransactionDescriptor descriptor) Creates new inactive transaction. -
Method Summary
Modifier and TypeMethodDescriptionprotected 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) Returns all connections associated with the transaction.protected Connection
getExistingConnection
(String name) getOrCreateConnection
(String connectionName, DataSource dataSource) Retrieves a connection for the given symbolic name.static Transaction
Returns a Transaction associated with the current thread, or null if there is no such Transaction.boolean
protected abstract void
protected abstract void
void
rollback()
void
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:
-
STATUS_COMMITTING
protected static final int STATUS_COMMITTING- See Also:
-
STATUS_COMMITTED
protected static final int STATUS_COMMITTED- See Also:
-
STATUS_ROLLEDBACK
protected static final int STATUS_ROLLEDBACK- See Also:
-
STATUS_ROLLING_BACK
protected static final int STATUS_ROLLING_BACK- See Also:
-
STATUS_NO_TRANSACTION
protected static final int STATUS_NO_TRANSACTION- See Also:
-
STATUS_MARKED_ROLLEDBACK
protected static final int STATUS_MARKED_ROLLEDBACK- See Also:
-
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 SQLException Description 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.
-