2012-07-11 121 views
8

我試着從hibernate 4.0 interceptors一些代碼,這給使用會話級攔截此代碼:休眠4.0.0Final哪裏是SessionFactory.openSession(攔截器攔截器)

Session session = sf.openSession(new AuditInterceptor()); 
然而

,我同時檢查hibernate-核心4.0源代碼並且在hibernate 4.0 java-doc,類SessionFactory沒有方法openSession(Interceptor interceptor),但hibernate 3.6 java-doc確實有這種方法。

任何人都知道該方法轉移到哪裏?如果不推薦,爲什麼文檔仍然保留在教程文檔中?以及我應該如何在4.0中使用會話級攔截器?

回答

22

它現在使用Builder模式實現:

Session session = sf.withOptions() 
        .interceptor(new AuditInterceptor()) 
        .openSession(); 
+5

跆拳道。爲什麼這裏沒有文件methion?你在哪裏找到這個傢伙,你是文檔英雄 – pinkdawn 2012-07-11 08:59:01

+1

@pinkdawn:Hibernate 4.x現在嚴重缺乏文檔。 [Hibernate 4.0 Manual](http://docs.jboss.org/hibernate/core/4.0/manual/en-US/html/index.html)是Hibernate 3.x時代的遺留物,它並不反映所有變化。它將被一個全新的[Hibernate開發者指南](http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/)取代,該版本尚未完成。爲了找到答案,我剛剛瀏覽了Javadoc頁面,並注意到了一個建造者模式。 – axtavt 2012-07-11 09:08:46

+1

不是我不同意文檔不太理想,手冊通常不會提到「這是您習慣的方式,但現在您可以......」。這就是更改日誌和遷移指南的工作。更改日誌(1)放入發行版下載軟件包中,(2)在發佈公告中引用,以及(3)通過Hibernate Jira永久可用。遷移指南列在https://community.jboss.org/wiki/Hibernate3MigrationGuides;例如https://community.jboss.org/wiki/HibernateCoreMigrationGuide40 – 2012-07-11 15:20:20