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();
  • 相关阅读:
    react-native中使用mobox数据共享
    vue cli3项目的pc自适应布局_vw
    webpack配置多页面和提取css
    react-native报错Encountered two children with the same key, `%s`.
    __proto__和prototype
    json-server配置模拟数据
    全局判断登录是否过期代码
    react-native环境搭建
    css的垂直居中常用几种方法
    进程和线程
  • 原文地址:https://www.cnblogs.com/xiqoqu/p/9218727.html
Copyright © 2011-2022 走看看