org.apache.cayenne.access

## Class Transaction

- java.lang.Object
- - org.apache.cayenne.access.Transaction

-     public abstract class Transaction
      extends Object

  A Cayenne transaction. Currently supports managing JDBC connections.
  Since:
    1.1

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Map<String,Connection>` | `connections`
    `protected TransactionDelegate` | `delegate`
    `protected JdbcEventLogger` | `jdbcEventLogger`
    `protected int` | `status`
    `static int` | `STATUS_ACTIVE`
    `static int` | `STATUS_COMMITTED`
    `static int` | `STATUS_COMMITTING`
    `static int` | `STATUS_MARKED_ROLLEDBACK`
    `static int` | `STATUS_NO_TRANSACTION`
    `static int` | `STATUS_ROLLEDBACK`
    `static int` | `STATUS_ROLLING_BACK`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `Transaction()` Creates new inactive transaction.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `addConnection(String name, Connection connection)`
    `abstract void` | `begin()` Starts a Transaction.
    `static void` | `bindThreadTransaction(Transaction transaction)` Binds a Transaction to the current thread.
    `abstract void` | `commit()`
    `static Transaction` | `externalTransaction(TransactionDelegate delegate)` Factory method returning a new transaction instance that would NOT propagate commit/rollback to participating connections.
    `Connection` | `getConnection(String name)`
    `TransactionDelegate` | `getDelegate()`
    `JdbcEventLogger` | `getJdbcEventLogger()`
    `int` | `getStatus()`
    `static Transaction` | `getThreadTransaction()` Returns a Transaction associated with the current thread, or null if there is no such Transaction.
    `static Transaction` | `internalTransaction(TransactionDelegate delegate)` Factory method returning a new transaction instance that would propagate commit/rollback to participating connections.
    `static Transaction` | `noTransaction()` Factory method returning a transaction instance that does not alter the state of participating connections in any way.
    `abstract void` | `rollback()`
    `void` | `setDelegate(TransactionDelegate delegate)`
    `void` | `setJdbcEventLogger(JdbcEventLogger jdbcEventLogger)`
    `void` | `setRollbackOnly()`
    `void` | `setStatus(int status)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### STATUS_ACTIVE

          public static final int STATUS_ACTIVE

      See Also:
        Constant Field Values

    - #### STATUS_COMMITTING

          public static final int STATUS_COMMITTING

      See Also:
        Constant Field Values

    - #### STATUS_COMMITTED

          public static final int STATUS_COMMITTED

      See Also:
        Constant Field Values

    - #### STATUS_ROLLEDBACK

          public static final int STATUS_ROLLEDBACK

      See Also:
        Constant Field Values

    - #### STATUS_ROLLING_BACK

          public static final int STATUS_ROLLING_BACK

      See Also:
        Constant Field Values

    - #### STATUS_NO_TRANSACTION

          public static final int STATUS_NO_TRANSACTION

      See Also:
        Constant Field Values

    - #### STATUS_MARKED_ROLLEDBACK

          public static final int STATUS_MARKED_ROLLEDBACK

      See Also:
        Constant Field Values

    - #### connections

          protected Map<String,Connection> connections

    - #### status

          protected int status

    - #### delegate

          protected TransactionDelegate delegate

    - #### jdbcEventLogger

          protected JdbcEventLogger jdbcEventLogger

  - ### Constructor Detail

    - #### Transaction

          protected Transaction()

      Creates new inactive transaction.

  - ### Method Detail

    - #### bindThreadTransaction

          public static void bindThreadTransaction(Transaction transaction)

      Binds a Transaction to the current thread.
      Since:
        1.2

    - #### getThreadTransaction

          public static Transaction getThreadTransaction()

      Returns a Transaction associated with the current thread, or null if there is no such Transaction.
      Since:
        1.2

    - #### internalTransaction

          public static Transaction internalTransaction(TransactionDelegate delegate)

      Factory method returning a new transaction instance that would propagate commit/rollback to participating connections. Connections will be closed when commit or rollback is called.

    - #### externalTransaction

          public static Transaction externalTransaction(TransactionDelegate delegate)

      Factory method returning a new transaction instance that would NOT propagate commit/rollback to participating connections. Connections will still be closed when commit or rollback is called.

    - #### noTransaction

          public static Transaction noTransaction()

      Factory method returning a transaction instance that does not alter the state of participating connections in any way. Commit and rollback methods do not do anything.

    - #### getDelegate

          public TransactionDelegate getDelegate()

    - #### setDelegate

          public void setDelegate(TransactionDelegate delegate)

    - #### getStatus

          public int getStatus()

    - #### setJdbcEventLogger

          public void setJdbcEventLogger(JdbcEventLogger jdbcEventLogger)

      Since:
        3.1

    - #### getJdbcEventLogger

          public JdbcEventLogger getJdbcEventLogger()

      Since:
        3.1

    - #### setRollbackOnly

          public void setRollbackOnly()

    - #### setStatus

          public void setStatus(int status)

    - #### begin

          public abstract void begin()

      Starts a Transaction. If Transaction is not started explicitly, it will be started when the first connection is added.

    - #### commit

          public abstract void commit()
                               throws IllegalStateException,
                                      SQLException,
                                      CayenneException

      Throws:
        `IllegalStateException`
        `SQLException`
        `CayenneException`

    - #### rollback

          public abstract void rollback()
                                 throws IllegalStateException,
                                        SQLException,
                                        CayenneException

      Throws:
        `IllegalStateException`
        `SQLException`
        `CayenneException`

    - #### getConnection

          public Connection getConnection(String name)

      Since:
        1.2

    - #### addConnection

          public boolean addConnection(String name,
                                       Connection connection)
                                throws SQLException

      Throws:
        `SQLException`
      Since:
        1.2

Copyright © 2001–2018 Apache Cayenne. All rights reserved.