Hibernate延迟加载错误:ERROR org.hibernate.LazyInitializationException

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

猜你喜欢

转载自ksying.iteye.com/blog/1568796