hibernate 获取sesssionFacotory

news/2024/7/24 10:13:33

hibernate的版本更新很快,获取sessionFactory的方式也在变化

1.通用的方式:

public SessionFactory test1(){
        Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
        SessionFactory sessionFactory = cfg.buildSessionFactory();
        return sessionFactory;
    }

这种方式是最早的方式,在以前不支持注解.直到 3.6.0.Final 这个版本才开始支持注解的方式.到 4.0.0.Final 过时

2.annotation

 

public SessionFactory test2(){
        Configuration cfg = new org.hibernate.cfg.AnnotationConfiguration().configure("hibernate.cfg.xml");
        SessionFactory sessionFactory = cfg.buildSessionFactory();
        return sessionFactory;

    }

 

自有annotation出现以来,hibernate先使用这种方式支持注解.到 3.6.0.Final 过时了.也就是方式一开始支持注解.到 4.3.0.Final 这个版本的时候,

org.hibernate.cfg.AnnotationConfiguration 整个类都不存在了.也就是彻底取消了这种方式.

3.service的方式
    public SessionFactory test3(){
        Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
        ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
        SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);
        return sessionFactory;
    }

这种使用方法经历3个大版本  4.0.x.Final 4.1.x.Final  4.2.x.Final 如果想在4.3.0.Final 继续使用过时的方法,ServiceRegistryBuilder 下已经没有buildServiceRegistry()这个方法了,使用 build() 代替

4.service2

 

Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();
        SessionFactory sessionFactory = cfg.buildSessionFactory(serviceRegistry);
        return sessionFactory;

 

在最新的4.3.x.Final中使用,5的版本还没出ga,目前测试版也是使用的这种方式.

 注:

hibernate3.4之前的版本都是使用cglib(cglib 2.1.3, asm 1.5.3 ,asm-attr 1.5.3)的方式进行代理
从3.4(包含3.4)开始使用javassist进行代理

转载于:https://www.cnblogs.com/fengyexjtu/p/4592431.html


http://www.niftyadmin.cn/n/717889.html

相关文章

「查缺补漏」高频考点浏览器面试题

前言想要成为一名合格的前端工程师,掌握相关浏览器的工作原理是必备的,这样子才会有一个完整知识体系,要是「能参透浏览器的工作原理,你就能解决80%的前端难题」。这篇梳理的话,更多的是对浏览器工作原理篇的查缺补漏&…

web框架解读:什么是web框架?

我们常用的web前端框架其实简单称呼叫web框架,现阶段web前端技术成熟,从视觉体验到用户体验都是比较好的,这也是从简单到复杂的web前端框架技术实现的,在国内前端技术开发人员也是非常的多,市面上的前端框架可以说是眼…

小写金额转换成中文大字金额函数

publicstaticstringCmycurD(decimalnum) { string str1 "零壹贰叁肆伍陆柒捌玖"; //0-9所对应的汉字 string str2 "万仟佰拾亿仟佰拾万仟佰拾元角分"; //数字位所对应的汉字 string str3 ""; //从原num值中取出的值 string str4 &…

GET和POST两种基本请求方法有什么区别

GET和POST两种基本请求方法有什么区别 GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中,POST通过request body传递参数。 你可能自己写过无数个GET和POST请求&a…

Meteor项目实战 -- Next 0.0.1

学了一段时间Meteor之后,着手做一个APP,关于时间管理的,取名 Next。 Get things done , and do Next同时,把开发过程尽可能详细的记录下来,分享给有需要的同学。前提是你有一些Meteor基础,至少要了解各种基…

laravel 添加跨域中间件

业务需要如果是完全的前后端分离,需要前端跨域请求后端接口的话,就可添加跨域中间件,而无需在PHP文件中设置可跨域。 并且,跨域中间件可只设置一个域名的跨域请求,也可通过配置文件添加多个域名的跨域请求。 首先&…

(转)用 GlassFish v2 替换 Tomcat 5.x

用 GlassFish v2 替换 Tomcat 5.x 1. 背景 用了很多年的Tomcat, 无论开发环境还是生产环境, 应该说, 大家对它还是基本满意的. 不过, 也不是一点问题没有. 从开发人员的角度来说, Tomcat主要的缺点就是较弱的热部署 (hot deploy)能力. 修改一个Java类, 保存后, Tomcat会重新加载…

Docker Getting Start

Docker for desktop 符合国情的科学安装指南: https://github.com/AliyunContainerService/k8s-for-docker-desktop {"experimental": false,"debug": true,"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn","http://…