• 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();
  • 相关阅读:
    MSN无法登录(错误代码80072745)的解决方法
    C#3.0新体验(二) 扩展方法
    My DreamTech
    让IE崩溃的bug, IE8也一样崩溃
    多线程的相关概念
    10条PHP经验总结
    PHP框架 CI与TP之MVC比较
    多线程设计要点
    Linux yum命令的使用技巧
    BigPipe 的工作原理
  • 原文地址:https://www.cnblogs.com/xiqoqu/p/9218727.html
Copyright © 2020-2023  润新知