框架SSH,前台查询数据时碰到如下异常:
ERROR org.hibernate.LazyInitializationException - failed to lazily initialize a collection, no session or session was closed
实体类关系映射:
<set name="regulatorSet" table="QMAX_GSM_RE_REGULATOR_GAGE" lazy="true"
cascade="none" sort="unsorted">
<key column="GAGE_ID"></key>
<many-to-many class="Regulator" column="REGULATOR_ID"
outer-join="auto" />
</set>
解决办法:
web.xml中添加OpenSessionInViewFilter
<filter>
<filter-name>gsm_OpenSessionInViewFilter</filter-name>
<filter-class>
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
<init-param>
<param-name>sessionFactoryBeanName</param-name>
<param-value>gsmSessionFactory</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>gsm_OpenSessionInViewFilter</filter-name>
<url-pattern>*.do</url-pattern>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.action</url-pattern>
</filter-mapping>