getCurrentSession()与openSession()的区别&&PROPAGATION_REQUIRED事务管理
来源:互联网 发布:quick软件 编辑:程序博客网 时间:2024/06/01 09:32
转载:getCurrentSession()与openSession()的区别&&PROPAGATION_REQUIRED事务管理
采用编程式事务
1、 getCurrentSession()与openSession()的区别?* 采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()创建的session则不会
* 采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession创建的session必须手动关闭
2、使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
* 如果使用的是本地事务(jdbc事务)
<property name=”hibernate.current_session_context_class”>thread</property>
* 如果使用的是全局事务(jta事务)
<property name=”hibernate.current_session_context_class”>jta</property>
采用声明式事务
声明式事务配置
2、编写业务逻辑方法
* 默认的回滚是RuntimeException(包括继承RuntimeException的子类),普通异常不回滚
* 在编写业务逻辑方法时,最好将异常一直往上抛出,在呈现层处理(struts)
* spring的事务需要设置到业务方法上(事务边界定义到Facade类上),不要添加到Dao上
3、了解事务的集中传播忒性
4、Spring事务的隔离级别
事务属性
T1
T2
Required
无
T1
T2
T1
RequiredNew
无
T1
T2
T2
Support
无
T1
无
T1
Mandatory
无
T1
抛异常
T1
NoSupport
无
T1
无
无
Never
无
T1
无
抛异常
à
<!-- 配置sessionFactory -- >
<bean id=”sessionFacory”class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”>
<property name=”configLocation”>
</property>
</bean>
<!-- 配置事务管理器-- >
<beanid=”transactionManager”class=”org.springframework.orm.hibernate3.HibernateTransactionMana
</property>
</bean>
<!-- 配置事务的传播特性-- >
<tx:advice id=”txAdvice” transaction-manager=”transactionManager”>
</tx:attributes>
</tx:advice>
<!-- 哪些类的哪些方法参与事务-- >
<aop:config>
</aop:config>
0 0
- getCurrentSession()与openSession()的区别&&PROPAGATION_REQUIRED事务管理
- getCurrentSession 与 openSession() 的区别 getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession()与openSession()的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- openSession与getCurrentSession的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession 与 openSession() 的区别 .
- getCurrentSession 与 openSession() 的区别
- openSession与getCurrentSession的区别
- getCurrentSession 与 openSession() 的区别
- getCurrentSession与openSession的区别
- 网络描述和随机图模型
- 镶嵌数据集工具小结(十 一)分析、修复、同步镶嵌数据集
- JS正则匹配大全
- XP搭建Apache+Tomcat+JSP+PHP+MYSQL环境教程
- GUI awt 四个继承Frame的MyFrame窗口
- getCurrentSession()与openSession()的区别&&PROPAGATION_REQUIRED事务管理
- GPS时间系统概述和世界时系统
- 人生导师——c++进阶,看哪些书啊
- 过滤器:活性碳过滤器的技术参数详细解读
- 短号范围
- 《一网打尽:贝佐斯与亚马逊时代》的推荐及推荐书单
- eclipse打开出现Failed to create the java virtual machine
- HBase in Action-第二部分Advanced concepts-(3)非Java客户端【REST、Thrift】
- Unix编程之size_t、ssize_t