Support a current transaction, throw an exception if none exists.
Support a current transaction, throw an exception if none exists. Analogous to EJB transaction attribute of the same name.
Execute within a nested transaction if a current transaction exists, behave like PROPAGATION_REQUIRED else.
Execute within a nested transaction if a current transaction exists, behave like PROPAGATION_REQUIRED else. There is no analogous feature in EJB.
Note: Actual creation of a nested transaction will only work on specific transaction managers. Out of the box, this only applies to the JDBC DataSourceTransactionManager when working on a JDBC 3.0 driver. Some JTA providers might support nested transactions as well.
dbx.jdbc.DataSourceTransactionManager
Execute non-transactionally, throw an exception if a transaction exists.
Execute non-transactionally, throw an exception if a transaction exists. Analogous to EJB transaction attribute of the same name.
Execute non-transactionally, suspend the current transaction if one exists.
Execute non-transactionally, suspend the current transaction if one exists. Analogous to EJB transaction attribute of the same name.
NOTE: Actual transaction suspension will not work out-of-the-box
on all transaction managers. This in particular applies to
dbx.transaction.jta.JtaTransactionManager
,
which requires the javax.transaction.TransactionManager
to be
made available it to it (which is server-specific in standard Java EE).
dbx.transaction.jta.JtaTransactionManager#setTransactionManager
Support a current transaction, create a new one if none exists.
Support a current transaction, create a new one if none exists. Analogous to EJB transaction attribute of the same name.
This is the default setting of a transaction annotation.
Create a new transaction, and suspend the current transaction if one exists.
Create a new transaction, and suspend the current transaction if one exists. Analogous to the EJB transaction attribute of the same name.
NOTE: Actual transaction suspension will not work out-of-the-box
on all transaction managers. This in particular applies to
dbx.transaction.jta.JtaTransactionManager
,
which requires the javax.transaction.TransactionManager
to be
made available it to it (which is server-specific in standard Java EE).
dbx.transaction.jta.JtaTransactionManager#setTransactionManager
Support a current transaction, execute non-transactionally if none exists.
Support a current transaction, execute non-transactionally if none exists. Analogous to EJB transaction attribute of the same name.
Note: For transaction managers with transaction synchronization, PROPAGATION_SUPPORTS is slightly different from no transaction at all, as it defines a transaction scope that synchronization will apply for. As a consequence, the same resources (JDBC Connection, Hibernate Session, etc) will be shared for the entire specified scope. Note that this depends on the actual synchronization configuration of the transaction manager.
dbx.transaction.support.AbstractPlatformTransactionManager#setTransactionSynchronization
Created by sauntor on 17-3-21.