open session in view 配置后为何仍然不能进行延迟加载
<!--初始化WebApplicationContext-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!--open session in view -->
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter </filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter </filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
调用代码User与Message是一对多的关系
public Users queryUsers(final int id){
return (Users)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "from Users where id=:id ";
Query query = session.createQuery(hql);
query.setInteger("id",id);
List<Users> list = query.list();
return list.get(0);
}
});
}
public class UserAction extends Action {
private TestDao testDao;
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
Users user = testDao.queryUsers(1);
System.out.println(user.getMessages().size());
return mapping.findForward("ok");
}
}
执行代码抱错...Session is closed...
求高手帮忙解决呀,困扰我很多天了