zoukankan      html  css  js  c++  java
  • hibernate---核心开发接口1(重点)

    面试考这个比较少

    a) Session session = sessionFactory.openSession();    永远都是打开新的 记得要 close


    b)  Session session = sessionFactory.getCurrentSession();  

    1.先找原来是否有存在,有就用 没有就开一个(在未提交之前永远都是一样的)用途:

    2.界定事务边界事务提交自动close 

    3.current_session_context_class(jta,thread)

      thread使用 connection

     <!-- Enable Hibernate's automatic session context management -->
            <property name="current_session_context_class">thread</property>

    一般用thread 有session就用当前的session   jta等学了EJB3.0 用于分布式(不止一个数据库)

    还有如果设为 
    <property name="current_session_context_class">jta</property>

    是不行的,application提供,tomcat本身不具备这样的能力(jboss可以,或者用spring也可以),

    那要是
    <property name="current_session_context_class">thread</property>
    这行去掉,

    如果要用getCurrentSession是不行了,因为我们没有设置session的上下文,既不是thread也不是jta,所以会报错


    11.1. Session和事务范围(transaction scope)

    11.2.1. 非托管环境

    11.2.2. 使用JTA(学了EJB3再说)




    		//Session session = sessionFactory.openSession();
    		Session session = sessionFactory.getCurrentSession();
    		
    		session.beginTransaction();
    		session.save(t);
    		
    		Session session2 = <span style="font-family: Arial, Helvetica, sans-serif;">sessionFactory.getCurrentSession();</span>
    
    
    		
    		System.out.println(session == session2) //输出;true
    		
    		session.getTransaction().commit();   //session 提交后 既session2跟着提交了
    		
    		Session session3 = sessionFactory.getCurrentSession();//重新打开一个
    		
    		System.out.println(session == session3);//输出:false





    版权声明:本文为博主原创文章,未经博主允许不得转载。

    today lazy . tomorrow die .
  • 相关阅读:
    Latex排版全解
    CSS编码规范
    UML状态图和活动图
    GitHub详解(GitHub for Windows)
    CSS盒子模型之CSS3可伸缩框属性(Flexible Box)
    CSS盒子模型
    剑指offer-面试题1:赋值运算符函数
    Java基础(2)面向对象和封装,对象的创建和使用、java对象的内存图
    Java基础(1)IntelliJ IDEA入门、常用快捷键和数组操作
    日语学习计划(转载)
  • 原文地址:https://www.cnblogs.com/france/p/4808667.html
Copyright © 2011-2022 走看看