package org.theonefx.wcframework.transaction.annotation;
import java.sql.Connection;
/**
* @Package org.theonefx.wcframework.transaction.annotation
* @ClassName: Isolation
* @author 陈曦
* @date 2010-10-15 11:22:25
* @Description: 事务的隔离级别
*/
public enum Isolation {
// 默认的隔离级别
DEFAULT(-1),
// 允许读取尚未提交的更改,可能导致脏读、幻读或不可重复读
READ_UNCOMMITTED(Connection.TRANSACTION_READ_UNCOMMITTED),
// 允许从已提交的并发事务读取,可以避免脏读,但是幻读和不可重复读可能会发生
READ_COMMITTED(Connection.TRANSACTION_READ_COMMITTED),
// 对相同的字段多次读取是一致的,除非数据库当前事务本身改变。
// 可防止脏读和不可重复读,但幻读仍可能发生
REPEATABLE_READ(Connection.TRANSACTION_REPEATABLE_READ),
// 完全服从ACID的隔离级别,确保不发生脏读、不可重复读和幻读。
// 在所有的隔离级别中也是最慢的,他完全锁定了当前事务所涉及的数据表来完成
SERIALIZABLE(Connection.TRANSACTION_SERIALIZABLE);
private final int value;
Isolation(int value) { this.value = value; }
public int value() { return this.value; }
}