美文网首页
session详解

session详解

作者: 曹达兴 | 来源:发表于2017-04-04 22:18 被阅读0次

    如何获得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详解

          本文链接:https://www.haomeiwen.com/subject/isvzottx.html