2014-03-28 48 views
0

我在GWT應用程序中使用hibernate,我有一個單獨的客戶端/服務/業務/ dao層。在GWT應用程序的servlet端管理hibernate會話

服務/業務層使用dao層來獲取/更新用於請求處理的模型。問題是,我遵循DOA類方法中打開/關閉休眠會話的反模式。

一般的hibernate準則似乎表明,我們應該有一個請求範圍的會話。這可以在幾個地方完成,比如servlet過濾器或服務層。我們可以打開會話並將其注入到DAO層,並在完成請求之前將其關閉到服務層。

我想知道如果有人有任何工作代碼/例子,說明任何標準的方法來處理這個。

感謝您的幫助。

回答

0

所有的GWT請求也使用servlet機制,你可以在你的web.xml中使用它。您可以創建自己的CustomRequestFactoryServlet,它將從GWT標準servlet擴展並將會話注入到您的(公共baseclassed服務)並清理會話關閉。

<servlet> 
    <servlet-name>requestFactory</servlet-name> 
    <servlet-class>nsa.snowden.CustomRequestFactoryServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>requestFactory</servlet-name> 
    <url-pattern>/gwtRequest</url-pattern> 
</servlet-mapping> 
相關問題