hibernate 获取sesssionFactory


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进行***

全部评论

相关推荐

05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
点赞 评论 收藏
分享
06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务