package org.jboss.seam.annotations;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.TYPE;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Documented;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* Specifies that the transaction propagation for a JavaBean
* component or method of a JavaBean component. JavaBean
* components have @Transactional(SUPPORTS) behavior
* if no @Transactional annotation is specified.
*
* @author Gavin King
*/
@Target({TYPE, METHOD})
@Retention(RUNTIME)
@Documented
@Inherited
public @interface Transactional
{
/**
* The transaction propagation type.
*
* @return REQUIRED by default
*/
TransactionPropagationType value() default TransactionPropagationType.REQUIRED;
}