zoukankan      html  css  js  c++  java
  • hibernate中的session的获取方法以及区别

    获取sesstionFactory的方法:

    //
    sessionFactory factory = new AnnotationConfiguration.configure("hibernate.cfg.xml").buildSessionFactory();

    //优先从上下文中去拿session,否则去创建新的session
    Session session = factory.getCurrentSession();

    //永远创建新的session而不会从上下文对象中区拿.
    Session session = factory.openSession();


    commit提交之后,..需要新起一个session.
    所以,commit前后,getCurrentSession所获取的session对象不一样.
    session会被关闭


    openSession: 
    每次都是新的,需要手动close

    getCurrentSession:
    从上下文找,如果有,用旧的; 如果没有,建新的;
    用途: 1.界定事务边界.
    2.事务提交自动clos;
    3.current_session_context_class (常用取值:jta,thread) java transaction api
    a) thread使用connection(从数据库的连接中建立事务)
    b) jta从分布式建立事务,不同库之间建立事务,需要application server的支持
    关于这个上下文: hibernate.current_session_context_class  

    取值: e.g.jta
    |thread
    |managed
    |custom.Class




  • 相关阅读:
    201301 JAVA题目0-1级, 华为笔试题
    病毒传播, 美团笔试题
    OC基础 字符串
    IOS OC语言基础(一)类的创建
    pyautogui 鼠标精灵模拟登陆
    ajax hook注入
    aiohttp异步请求
    IOS自学教程大全
    提高python工具包
    Kafka与Flume区别
  • 原文地址:https://www.cnblogs.com/duenboa/p/6665471.html
Copyright © 2011-2022 走看看