session详解

如何获得session对象?

1)openSession

2)getCurrentSession

如果使用getCurrentSession需要在hibernate.cfg.xml文件中进行配置

如果是本地事务(jdbc事务):

<property name="hibernate.current_session_context_class">thread</property>

如果是全局事务(jta事务):
<property name="hibernate.current_session_context_class">jta</property>

全局事务:资源管理器管理和协调的事务,可以跨越多个数据库和进程。资源管理器一般使用 XA 二阶段提交协议与“企业信息系统”(EIS) 或数据库进行交互。
本地事务:在单个 EIS 或数据库的本地并且限制在单个进程内的事务。本地事务不涉及多个数据来源。

(1)getCurrentSession在事务提交或者回滚之后会自动关闭,而openSesssion需要你手动关闭。
如果使用openSession而没有手动关闭,多次之后会导致连接池溢出!
(2)openSession每次创建新的session对象,
getCurrentSession使用现有的session对象(现有session没commit之前)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • session详解 获得session对象的方法1.openSession2.getCurrentSession ...
    戴宏鹏阅读 1,534评论 0 1
  • Cookie与Session详解读书笔记,从概念、操作、应用、注意事项以及区别等几方面详细阐述两者的基础知识,它们...
    奋斗live阅读 4,705评论 0 2
  • Web服务器跟踪客户状态通常有四种方法:建立含有跟踪数据的隐藏字段;重写包含额外参数的url;使用持续的cooki...
    exmexm阅读 5,928评论 0 0
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,053评论 6 342
  • 本文是战隼老师在喜马拉雅FM的《战隼:无需意思志力的习惯养成法-100天行动》的笔记。如需要原文,请收听节目。如有...
    西西西西力阅读 1,807评论 0 2