用户登录
用户注册

分享至

hibernate4事务管理

  • 作者: 丢了的蜡笔小新
  • 来源: 51数据库
  • 2020-09-29
可以把事务管理部分交给spring框架完成。

配置事务(xml方式)
使用spring管理事务后在dao中不再需要调用beginTransaction和commit,也不需要调用session.close(),使用API ?sessionFactory.getCurrentSession()来替代sessionFactory.openSession()





?UserDaoImpl?









?User?findUserById(


?????????Session?session?=

?????????User?user?=?(User)session.get(User.










?}采用getCurrentSession()创建的session会绑定到当前线程中,而采用openSession()创建的session则不会。
采用getCurrentSession()创建的session在commit或rollback时会自动关闭,而采用openSession()创建的session必须手动关闭。
使用getCurrentSession()需要在hibernate.cfg.xml文件中加入如下配置:
* 如果使用的是本地事务(jdbc事务)
<property name="hibernate.current_session_context_class">thread</property>
* 如果使用的是全局事务(jta事务)
<property name="hibernate.current_session_context_class">jta</property>
如果采用的时Hibernate4,使用getCurrentSession()必须配置事务,否则无法取到session
软件
前端设计
程序设计
Java相关