/mycila-jdbc/tags/mycila-jdbc-1.5.rc1/src/main/java/com/mycila/jdbc/tx/Propagation.java
http://mycila.googlecode.com/ · Java · 90 lines · 10 code · 10 blank · 70 comment · 0 complexity · 2a80f70e515e8704bf5a9d3adb077b4f MD5 · raw file
- /**
- * Copyright (C) 2010 Mycila <mathieu.carbou@gmail.com>
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- package com.mycila.jdbc.tx;
- /**
- * Enumeration that represents transaction propagation behaviors for use
- * with the {@link Transactional} annotation
- *
- * @author Colin Sampaleanu
- * @author Juergen Hoeller
- * @since 1.2
- */
- public enum Propagation {
- /**
- * Support a current transaction, create a new one if none exists.
- * Analogous to EJB transaction attribute of the same name.
- * <p>This is the default setting of a transaction annotation.
- */
- REQUIRED,
- /**
- * Support a current transaction, execute non-transactionally if none exists.
- * Analogous to EJB transaction attribute of the same name.
- * <p>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.
- */
- SUPPORTS,
- /**
- * Support a current transaction, throw an exception if none exists.
- * Analogous to EJB transaction attribute of the same name.
- */
- MANDATORY,
- /**
- * Create a new transaction, suspend the current transaction if one exists.
- * Analogous to EJB transaction attribute of the same name.
- * <p>Note: Actual transaction suspension will not work on out-of-the-box
- * on all transaction managers. This in particular applies to JtaTransactionManager,
- * which requires the <code>javax.transaction.TransactionManager</code> to be
- * made available it to it (which is server-specific in standard J2EE).
- */
- REQUIRES_NEW,
- /**
- * Execute non-transactionally, suspend the current transaction if one exists.
- * Analogous to EJB transaction attribute of the same name.
- * <p>Note: Actual transaction suspension will not work on out-of-the-box
- * on all transaction managers. This in particular applies to JtaTransactionManager,
- * which requires the <code>javax.transaction.TransactionManager</code> to be
- * made available it to it (which is server-specific in standard J2EE).
- */
- NOT_SUPPORTED,
- /**
- * Execute non-transactionally, throw an exception if a transaction exists.
- * Analogous to EJB transaction attribute of the same name.
- */
- NEVER,
- /**
- * Execute within a nested transaction if a current transaction exists,
- * behave like PROPAGATION_REQUIRED else. There is no analogous feature in EJB.
- * <p>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
- */
- NESTED
- }