您需要实现俗称的OpenSessionInView
模式。
它是通过使用 Sevlet 实现的Filter
,您如何配置它取决于您是否在 Web 层中使用其他框架,例如 Spring。
一个典型的实现使用了 Spring 的OpenSessionInViewFilter
like
<filter>
<filter-name>SpringOpenSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>SpringOpenSessionInViewFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
这必须Filter
在您的web.xml
. 如果您使用 Spring 为您构建会话工厂,则Filter
需要配置
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>sessionFactory</param-value>
</init-param>