zoukankan      html  css  js  c++  java
  • 操作NHibernate进行多事务并发处理的一些小经验

    今天在做项目的时候,遇到了一些事务处理上的问题。在MSN群里咨询了DDL这些高手,结合NHB的文档看了看。写了一个小Demo,但是问题还是有不少,还需要进一步改善。。。

    public void Add(Test t, string query)
      
    {
       ISessionFactoryImplementor sf 
    = factor as ISessionFactoryImplementor;
       conn 
    = sf.OpenConnection();
                ITransaction nTran 
    = null;
       
    try
       
    {
        
        
    // 第一个Session
        session1 = factor.OpenSession(conn);

        nTran 
    = session1.BeginTransaction();
        
        session1.Save(t);
        session1.Flush();
        session1.Close();

        
        
    // 执行Sql语句
        IDbCommand com = sf.ConnectionProvider.Driver.CreateCommand();
        com.CommandText 
    = query;
        com.CommandType 
    = CommandType.Text;
        nTran.Enlist(com);
        com.Connection 
    = conn;
        com.ExecuteNonQuery();

        IDbTransaction tran 
    = com.Transaction;

        tran.Commit();
        
       }

       
    catch(Exception ex)
       
    {
        nTran.Rollback();
        
    throw ex;
       }

       
    finally
       
    {
        session1.Close();
       }

      }




    这里无法同时执行两个Session里方法。

  • 相关阅读:
    debian配置apache2.4配置虚拟主机遇到的问题
    Javascript关于attachEvent和addEventListener区别与兼容写法
    图解linux下top命令的使用
    idea报错:java 不支持发行版本5
    java-访问权限
    IDEA图标含义
    IDEA生成UML类图
    idea快捷键
    idea同时运行两个main()
    idea关闭vim编辑模式
  • 原文地址:https://www.cnblogs.com/yfalcon/p/555346.html
Copyright © 2011-2022 走看看