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




  • 相关阅读:
    HDU-统计难题
    POJ-A Simple Problem with Integers
    HDU-I Hate It
    个人站立会议06
    个人站立会议05
    个人站立会议04
    易校小程序典型用户需求分析
    个人站立会议03
    个人第二次晚间站立总结会议
    个人站立会议02
  • 原文地址:https://www.cnblogs.com/duenboa/p/6665471.html
Copyright © 2011-2022 走看看