/// <summary>
/// IBatis事务,支持事务嵌套
/// </summary>
public class IBatisTransaction
{
static private object _syn = new object();//控制多线程并发
static private Dictionary<Thread, int> _SessionList = new Dictionary<Thread, int>();//保存运行事务的线程,int 表示某一个线程执行多级事务的数量,即:两个方法中都有事务存在
/// <summary>
/// 开始事务
/// </summary>
/// <param name="callObj">调用对象,一般为this</param>
public static void BeginTransaction(object callObj)
{
ISqlMapper daoManager = ServiceConfig.GetInstance().DaoManager;
Thread thread = Thread.CurrentThread;
lock (_syn)
{
if (_SessionList.ContainsKey(thread))//当前线程已经存在事务标识中就不开启第二层事务
/// IBatis事务,支持事务嵌套
/// </summary>
public class IBatisTransaction
{
static private object _syn = new object();//控制多线程并发
static private Dictionary<Thread, int> _SessionList = new Dictionary<Thread, int>();//保存运行事务的线程,int 表示某一个线程执行多级事务的数量,即:两个方法中都有事务存在
/// <summary>
/// 开始事务
/// </summary>
/// <param name="callObj">调用对象,一般为this</param>
public static void BeginTransaction(object callObj)
{
ISqlMapper daoManager = ServiceConfig.GetInstance().DaoManager;
Thread thread = Thread.CurrentThread;
lock (_syn)
{
if (_SessionList.ContainsKey(thread))//当前线程已经存在事务标识中就不开启第二层事务