知识点:
【
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();
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();
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来实现 
】
                
