4.openSession() 、 getCurrentSession()与session上下文

openSession()每次都打开一个新的session,用了openSession(),要记得close()掉

 

getCurrentSession()在session上下文(hibernate配置文件中的current_session_context_class有设定)找session,如果有,则返回该session,否则会新建一个session。不需要调用close(),transaction commit后会自动关闭。openSession()与getCurrentSession()不能混用!

 

session上下文在hibernate配置文件中(hiberbate.cfg.xml)设置,<property name="current_session_context_class">thread/jta</property>
事务可以简单分为两种:connection事务和jta事务。
thread是通过connection对象来管理事务,不能管理分布式的事务,属于connection事务
jta(Java Transaction API)可以管理分布式事务。它需要用到多个connection对象,与不同的数据库系统进行交互,此时jta采用第三方的事务管理器(transaction manager)统一管理不同的connection事务。

转载于:https://www.cnblogs.com/cbirdq/p/4604023.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值