**关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用**

来源:互联网 发布:材料入库单软件 编辑:程序博客网 时间:2024/04/30 20:14
  • 之前一直都是使用hibernate4.2.21的我,有一天突然没有使用本地的jar包而是让IDEA自动下载最新版本的hibernate5.2.2之后,发现有几个经常使用的方法报错了.
    报错
    -这真是让我惊了个呆,网上一搜,好像有这个问题的人还不少,然后发现果然是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();

至此问题圆满解决(撒花)

0 0
原创粉丝点击