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();
Hibernate **關於hibernate4.3版本之後org.hibernate.service.ServiceRegistryBuilder被棄用**