zoukankan      html  css  js  c++  java
  • 20160515-hibernate--事务

    事务
    JDBCTransaction
    单个数据库(一个SesisonFactory对应一个数据库),由JDBC实现。
    Session session = null;
        Transaction tx =null;
        try {
            session = sessionFactory.openSession();
            tx = session.beginTransaction();
            //process
            tx.commit();
        } catch(HibernateException e){
            if(tx != null)tx.rollback();throw e;
        }finally {
            if (session != null)session.close();
        }
        connection.setAutoCommit(false);
        connection.commit();conn.rollback();
    JTATransaction
    可以简单的理解成跨数据库的事物,由应用JTA 容器实现;使用JTATransaction需要配置hibernate.transaction.factory_class参数,该参数缺省值是org.hibernate.transaction. JDBCTransactionFactory,当使用JTATransaction时需要将该参数改成org.hibernate.transaction.JTATransactionFactory,并配置jta.UserTransaction参数JNDI名(Hibernate在启动JTATransaction时要用该值到JNDI的上下文Context中去找javax.transaction.UserTransaction)。
    javax.transaction.UserTransactin tx = context.lookup(“jndiName”);
    try{
        tx.begin();
        //多个数据库的session操作;
        //session1….
        //session2….
        tx.commit();
    }catch(Exception e){
        tx.rollback(); throw e;
    }
    session context和事务边界
    用current_session_context_class属性来定义context(用sessionFactory.getCurrentSession()来获得session),其值为:
    1.thread:ThreadLocal来管理Session实现多个操作共享一个Session,避免反复获取Session,并控制事务边界,此时session不能调用close当commit或rollback的时候session会自动关闭(connection.release_mode:after_transaction)。
    Open session in view:在生成(渲染)页面时保持 session打开。
    2.jta:由JTA事务管理器来管理事务(connection.release_mode:after_statement)。
    悲观锁和乐观锁
    悲观锁由数据库来实现;乐观锁hibernate用version和timestamp来实现
     
  • 相关阅读:
    洛谷 P2888 [USACO07NOV]牛栏Cow Hurdles
    洛谷 P2935 [USACO09JAN]最好的地方Best Spot
    CODEVS 1172 Hankson 的趣味题
    洛谷 P2261 [CQOI2007]余数求和
    洛谷 P1463 [POI2002][HAOI2007]反素数
    洛谷 P3383 【模板】线性筛素数
    1.4.2 solr字段类型--(1.4.2.1)字段类型定义和字段类型属性
    HttpSolrServer-采用静态工厂方法,创建HttpSolrServer单实例
    将字符转换为unicode码
    solrj-WiKi
  • 原文地址:https://www.cnblogs.com/xiaoduc-org/p/5495865.html
Copyright © 2011-2022 走看看