摘要: 1、getCurrentSession()与openSession()的区别?* 采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()创建的session则不会* 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()创建的session必须手动关闭2、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:* 如果使用的是本地事务(jdbc事务)thread* 如果使用的是全局事务(jta事务)jta 阅读全文
posted @ 2013-06-27 23:25 大都督 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 采用声明式事务:1、声明式事务配置* 配置SessionFactory* 配置事务管理器* 事务的传播特性* 那些类那些方法使用事务2、编写业务逻辑方法* 继承HibernateDaoSupport类,使用HibernateTemplate来持久化,HibernateTemplate是Hibernate Session的轻量级封装* 默认情况下运行期异常才会回滚(包括继承了RuntimeException子类),普通异常是不会滚的* 编写业务逻辑方法时,最好将异常一直向上抛出,在表示层(struts)处理* 关于事务边界的设置,通常设置到业务层,不要添加到Dao上 3、了解事务的几种传播特性1 阅读全文
posted @ 2013-06-27 23:24 大都督 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 7个传播行为,4个隔离级别(转自http://www.blogjava.net/freeman1984/archive/2010/04/28/319595.html)Spring事务的传播行为和隔离级别[transactionbehaviorandisolatedlevel]2007-08-01 16:33事务的传播行为和隔离级别[transactionbehaviorandisolatedlevel]Spring中事务的定义:一、Propagation : key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUI. 阅读全文
posted @ 2013-06-27 23:19 大都督 阅读(262) 评论(0) 推荐(0) 编辑