1. 程式人生 > >學習hibernate5.x的一些坑

學習hibernate5.x的一些坑

hibernate5.x中buildServiceReguistry()方法使用方法

5版本匯入更換為:
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

在4版本中
Configuration conf = new Configuration().configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(conf.getProperties()).buildServiceRegistry();
SessionFactory sf = conf.buildSessionFactory(serviceRegistry);

在5版本的Hibernate中,buildServiceReguistry()方法被替換了,用如下方法:
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(conf.getProperties()).build();

hibernate4.3版本後org.hibernate.service.ServiceRegistryBuilder被棄用

網上大部分的視訊教程裡會用到serviceRegistry()方法來註冊服務物件,這個類在4.3版本之後已經被棄用了,所以你會發現你敲出來的程式碼行會報錯,新的用法如下:

        //建立配置物件  
        Configuration config = new Configuration().configure();
        //建立服務註冊物件  
        ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(config .getProperties()).build();
        //建立會話工廠物件  
        sessionFactory = config.buildSessionFactory(serviceRegistry);
        //會話物件  
        session = sessionFactory.openSession();
        //開啟事務  
        transaction = session.beginTransaction();

甚至可以省略建立服務物件這一步,這樣寫

        //建立配置物件(讀取配置文件)
        Configuration config = new Configuration().configure();
        //建立會話工廠物件
        sessionFactory = config.buildSessionFactory();
        //會話物件
        session = sessionFactory.openSession();
        //開啟事務
        transaction = session.beginTransaction();

未完待續