面试考这个比较少

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

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

hibernate---核心开发接口1(重点)的更多相关文章

  1. Hibernate学习笔记2.5(Hibernate核心开发接口和三种状态)

    1.configuration(配置信息管理,产生sessionfactory) sessionfactory管理一系列的连接池 opensession 永远打开新的,需要手动close getcur ...

  2. Hibernate核心开发接口_SessionFactory详解

    SessionFactory: a)  用来产生和管理Session b)通常情况下每个应用只需要一个SessionFactory c)除非要访问多个数据库的情况 d) 关注两个方法即:  openS ...

  3. hibernate核心开发接口_Configuration

    AnnotationConfiguration继承自Configuration,这里以AnnotationConfiguration为例: new AnnotationConfiguration(). ...

  4. 5.Hibernate 核心开发接口

    一.Configuration(AnnotationConfiguration) 作用:进行配置信息的管理 目标:用来产生SessionFactory 可以在configure 方法中指定hibern ...

  5. HIbernate学习笔记(二) hibernate对象的三种状态与核心开发接口

    1.在hibernate中持久化对象有三个状态,这个面试时可能会问到: (1)transient瞬时态:在数据库中没有与之匹配的数据,一般就是只new出了这个对象,并且在session缓存中也没有即此 ...

  6. Hibernate系列之核心开发接口

    一.概述 所有的hibernate应用中都会访问5个核心接口,它们分别是: Configuration:配置hibernate,创建SessionFactory对象 SessionFactory:初始 ...

  7. hibernate(五)核心开发接口与对象的三种状态

    本文链接:http://www.orlion.ml/37/ 一.Configuration 1.AnnotationConfiguration 2.进行配置信息的管理 3.configure()方法通 ...

  8. Hibernate 再接触 核心开发接口

    1.可以重载方法进行配置文件的指定 sessionFactory = new AnnotationConfiguration().configure("hibernate.xml" ...

  9. 轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)

    轻量级Java EE企业应用实战(第4版):Struts 2+Spring 4+Hibernate整合开发(含CD光盘1张)(国家级奖项获奖作品升级版,四版累计印刷27次发行量超10万册的轻量级Jav ...

随机推荐

  1. 多端口站点设置,以APMSERV集成环境为例!

    以下以APMSERV集成环境为例: 1.找到你的apache上的配置文件httpd.conf,用记事本打开, D:\APMServ\Apache\conf 2.修改以下几项: Listen 80 下增 ...

  2. 安装Google框架服务并突破Google Play下载限制

    请注明出处:http://www.cnblogs.com/killerlegend/p/3546235.html Written By KillerLegend 关于谷歌服务框架以及安装 安装前请先获 ...

  3. Java中的类加载器----ClassLoader

    1.简单的讲类加载器就是加载类. 在一个类要被执行时,首先会被从硬盘中加载到内存中,这个任务就是由类加载器来完成,如果加载不成功时,类是无法被执行的.类加载器执行的都是字节码二进制文件.   帮助文档 ...

  4. 实战Django:官方实例Part5

    俗话说,人非圣贤,孰能无过.在堆代码的过程中,即便是老攻城狮,也会写下一些错误的内容.俗话又说,过而能改,善莫大焉.要改,首先要知道哪里存在错误,这便是我们要对投票应用进行测试的原因.   21.撰写 ...

  5. linux 使用 pyodbc 访问 ms sqlserver 数据库

    一.安装linux下Sqlserver的驱动程序: 我们先来安装SqlServer的驱动程序,再安装ODBC相关的,目的是想尽快可以进行测试,因为在安装完Freetds之后,我们马上就可以在linux ...

  6. wpf 在引用外部的资源字典

    启动的APP.xaml

  7. Redhat 6环境下安装Oracle 12c的方法

    Step 1: 要在Linux上安装Oracle,需要在安装Oracle之前安装好相应的软件包,在不同操作系统环境下,对软件包的要求各不相同.具体对应的软件包,见官网文档:https://docs.o ...

  8. button与submit

    原文来自: http://blog.sina.com.cn/s/blog_693d183d0100uolj.html submit是button的一个特例,也是button的一种,它把提交这个动作自动 ...

  9. Linux 虚拟机和物理机配互信出现无法连接

    配置文件位置:[root@hank-yoon data]# vi /etc/ssh/sshd_configPermitRootLogin yes 在物理机中,装完系统,默认情况下PermitRootL ...

  10. hdu 5272 Dylans loves numbers

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5272 Dylans loves numbers Description Who is Dylans?Y ...