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 Details

  • Constructor Details

    • BaseTransaction

      protected BaseTransaction(TransactionDescriptor descriptor)
      Creates new inactive transaction.
  • Method Details

    • 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:
      setRollbackOnly in interface Transaction
    • isRollbackOnly

      public boolean isRollbackOnly()
      Specified by:
      isRollbackOnly in interface Transaction
    • addListener

      public void addListener(TransactionListener listener)
      Specified by:
      addListener in interface Transaction
    • 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 interface Transaction
    • commit

      public void commit()
      Specified by:
      commit in interface Transaction
    • processCommit

      protected abstract void processCommit()
    • rollback

      public void rollback()
      Specified by:
      rollback in interface Transaction
    • processRollback

      protected abstract void processRollback()
    • getConnections

      public Map<String,Connection> getConnections()
      Description copied from interface: Transaction
      Returns all connections associated with the transaction.
      Specified by:
      getConnections in interface Transaction
      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 interface Transaction
      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.