Hibernate4中buildSessionFactory方法廢棄問題。

來源:互聯網
上載者:User

在用Hibernate4時會發現:
 

<SPAN style="FONT-SIZE: 18px">SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();</SPAN> 

SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();buildSessionFactory()廢棄,相信很多人會覺得為什麼廢棄這方法,查了網上的資料,綜合如下:

 


     Hibernate給了個ServiceRegistry,然後拿到sessionFactory是通過:

 SPAN style="FONT-SIZE: 18px">  @BeforeClass     public static void beforeClass() {         Configuration configuration = new Configuration();         //new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);          //sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();          ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();         SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);     </SPAN>  @BeforeClass public static void beforeClass() {  Configuration configuration = new Configuration();  //new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);  //sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();  ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();  SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);  

 

像網友說的具有註冊表格儲存體庫功能,功能更多了,上面的方法廢棄,其實是hibernate想你用這個類,因為他們寫了個更好的東西出來。原來是這樣。其實裡面的源碼還是:

 SPAN style="FONT-SIZE: 18px">package cn.framework.dao.util; import org.hibernate.HibernateException; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; public class HibernateUtil {    public static SessionFactory sessionfactory = null;  static {   try {    // 通過hibernate.cfg.xml 產生一個SessionFactory  還是和原來的方法一樣的。。     sessionfactory = new Configuration().configure().buildSessionFactory();   } catch (Throwable ce) {    ce.printStackTrace();   }  }</SPAN> package cn.framework.dao.util;import org.hibernate.HibernateException;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;public class HibernateUtil {  public static SessionFactory sessionfactory = null; static {  try {   // 通過hibernate.cfg.xml 產生一個SessionFactory  還是和原來的方法一樣的。。   sessionfactory = new Configuration().configure().buildSessionFactory();  } catch (Throwable ce) {   ce.printStackTrace();  }


 }還是用到我們上面所謂的廢棄的方法。

 


這裡有篇文章詳細介紹了ServiceRegistry。有興趣的可以看看。


 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.