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 {};
}