在GWT应用程序的servlet端管理hibernate会话

在GWT应用程序的servlet端管理hibernate会话,hibernate,session,gwt,Hibernate,Session,Gwt,我在GWT应用程序中使用hibernate,其中我有一个单独的客户机/服务/业务/dao层 服务/业务层使用dao层获取/更新用于请求处理的模型。问题是,我遵循DOA类方法中打开/关闭hibernate会话的反模式 一般的hibernate指南似乎建议,我们应该有一个请求范围的会话。这可以在几个地方完成,比如servlet过滤器或服务层。我们可以打开会话并将其注入DAO层,然后在完成请求之前在服务层关闭会话 我想知道是否有人有任何工作代码/示例来说明处理此问题的标准方法 感谢您的帮助。所有GWT

我在GWT应用程序中使用hibernate,其中我有一个单独的客户机/服务/业务/dao层

服务/业务层使用dao层获取/更新用于请求处理的模型。问题是,我遵循DOA类方法中打开/关闭hibernate会话的反模式

一般的hibernate指南似乎建议,我们应该有一个请求范围的会话。这可以在几个地方完成,比如servlet过滤器或服务层。我们可以打开会话并将其注入DAO层,然后在完成请求之前在服务层关闭会话

我想知道是否有人有任何工作代码/示例来说明处理此问题的标准方法


感谢您的帮助。

所有GWT请求也都使用servlet机制,您的web.xml中有它。您可以创建自己的CustomRequestFactoryServlet,该servlet将从GWT标准servlet进行扩展,并将会话注入到您的(公共基类服务)中,并清理会话关闭

    <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>

请求工厂
nsa.snowden.CustomRequestFactoryServlet
请求工厂
/gwtRequest