弄了几天 hibernate3 结果被联级加载时候延迟加载搞得头都大了,自己照着别人的做都说session 不存在或者关闭 ,刚才终于解决了。
fetch="join" 时候采用外连接查询,虽然提高了效率但是有时候有重复数据,还有排序多了不能达到预定的效果,fetch="select"时 hibernate会先加载主表数据,延迟加载关系数据,但是没有配置
<filter>
<filter-name>hibernateOpenSessionInViewFilter</filter-name>
<filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hibernateOpenSessionInViewFilter</filter-name>
<url-pattern>*.action</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<filter-mapping>
<filter-name>hibernateOpenSessionInViewFilter</filter-name>
<url-pattern>/j_spring_security_check</url-pattern>
</filter-mapping>
会出错,说session关闭或者不存在。我也配过可惜以前都不留意顺序,今天突然明白了,既然hibernate已经交给spring 管理了,那么spring 必须先启动,这个filter才能生效,否则等于没写,所以我纠结了好久,错了就记下,以免下次再错!