我在GWT应用程序中使用hibernate,我有一个单独的客户端/服务/业务/ dao层。
服务/业务层使用dao层来获取/更新用于请求处理的模型。问题是,我正在遵循DOA类方法中打开/关闭hibernate会话的反模式。
一般的hibernate指南似乎表明,我们应该有一个请求范围的会话。这可以在servlet过滤器或服务层等几个地方完成。我们可以打开会话并将其注入DAO层并在完成请求之前将其关闭在服务层中。
我想知道是否有人有任何工作代码/示例说明了处理此问题的任何标准方法。
感谢您的帮助。
答案 0 :(得分:0)
所有GWT请求也使用servlet机制,您可以在web.xml中使用它。您可以创建自己的CustomRequestFactoryServlet,它将从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>