package org.theonefx.wcframework.transaction.annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import org.theonefx.wcframework.transaction.TransactionDefinition; /** * @File : Transactional.java * @ClassName : Transactional * @Author : TheoneFx * @Date : 2012-8-24 上午08:45:09 * @Version : v1.0 * @Description : 事务注解 */ @Target({ ElementType.METHOD, ElementType.TYPE }) @Retention(RetentionPolicy.RUNTIME) public @interface Transactional { public String value() default ""; /* * 事务的隔离级别 */ public Isolation isolation() default Isolation.DEFAULT; int timeout() default TransactionDefinition.TIMEOUT_DEFAULT; /* * 是否为只读事务 */ public boolean readOnly() default false; /* * 事务的传播行为 */ public Propagation propagation() default Propagation.REQUIRED; /* * 会导致回滚的异常 */ public Class<? extends Throwable>[] rollbackFor() default {}; public String[] rollbackForClassName() default {}; /* * 不会导致回滚的异常 */ public Class<? extends Throwable>[] noRollbackFor() default {}; public String[] noRollbackForClassName() default {}; }