zoukankan      html  css  js  c++  java
  • Hibernate **关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用**

    • 之前一直都是使用hibernate4.2.21的我,有一天突然没有使用本地的jar包而是让IDEA自动下载最新版本的hibernate5.2.2之后,发现有几个经常使用的方法报错了. 

      //创建配置对象
      Configuration config=new Configuration().configure();
      //创建服务注册对象
      ServiceRegistry serviceRegistry2=new ServiceRegistryBuilder() .applySettings(config.getProperties()).buildServiceRegistry();
      //创建会话工厂对象
      sessionFactory=config.buildSessionFactory(serviceRegistry2);
      //会话对象
      session=sessionFactory.openSession();
      //开启事务
      transaction=session.beginTransaction();

    • -这真是让我惊了个呆,网上一搜,好像有这个问题的人还不少,然后发现果然是hibernate版本的问题——hibernate4.3之后已经没有了org.hibernate.service.ServiceRegistryBuilder这个类,它被弃用了 

    • 这下子问题就迎刃而解了 
      -如果使用的是hibernate4.2之前的版本,那么方法就这么写:

            //创建配置对象
            Configuration config = new Configuration().configure();
            //创建服务注册对象
            ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(config.getProperties()).buildServiceRegistry();
            //创建会话工厂对象
            sessionFactory = config.buildSessionFactory(serviceRegistry);
            //会话对象
            session = sessionFactory.openSession();
            //开启事务
            transaction = session.beginTransaction();

    -如果是hibernate4.3之后的版本,那么方法就这么写: 
    导入包更换:org.hibernate.boot.registry.StandardServiceRegistryBuilder;

            //创建配置对象  
            Configuration config = new Configuration().configure();
            //创建服务注册对象  
            ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(config .getProperties()).build();
            //创建会话工厂对象  
            sessionFactory = config.buildSessionFactory(serviceRegistry);
            //会话对象  
            session = sessionFactory.openSession();
            //开启事务  
            transaction = session.beginTransaction();

    -甚至我还发现到hibernate5之后连上面的包都可以省略了:

            //创建配置对象(读取配置文档)
            Configuration config = new Configuration().configure();
            //创建会话工厂对象
            sessionFactory = config.buildSessionFactory();
            //会话对象
            session = sessionFactory.openSession();
            //开启事务
            transaction = session.beginTransaction();
  • 相关阅读:
    LOJ 6089 小Y的背包计数问题 —— 前缀和优化DP
    洛谷 P1969 积木大赛 —— 水题
    洛谷 P1965 转圈游戏 —— 快速幂
    洛谷 P1970 花匠 —— DP
    洛谷 P1966 火柴排队 —— 思路
    51Nod 1450 闯关游戏 —— 期望DP
    洛谷 P2312 & bzoj 3751 解方程 —— 取模
    洛谷 P1351 联合权值 —— 树形DP
    NOIP2007 树网的核
    平面最近点对(加强版)
  • 原文地址:https://www.cnblogs.com/xiqoqu/p/9218727.html
Copyright © 2011-2022 走看看