我的系统是使用hibernate3,struts2,spring搭建。
在我的系统中,此异常出现我感觉比较奇怪,我已经配置spring OpenSessionInViewFilter,如下
<filter>
<filter-name>lazyLoadingFilter</filter-name>
<filter-class> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>lazyLoadingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
并确保将此过滤器配置到struts2之前,而且我在
中没有配置fetch和lazy属性,代码中的关联对象之间的调用也是没有问题的。我认为上面的配置应该是已经起到作用了。
但是在系统中仍然可能报no session 错误,我将操作对象对应的数据库中记录的ID进行修改后,不再报此错误,修改回来后再次报错(其他任何字段都没有修改过,一次可以知道唯一导致no session错误的问题就是对象的ID,而和其他参数都没有任何关系,和spring opensessioninviewfilter也没有关系,与fetch,lazy也没有关系).
在出现此问题之前,数据库有从外来源导入过数据,通过 del plsql工具导入的。我怀疑是否与导入数据的原因有关。于是我测试通过系统功能新建了测试对象,对新建对象的操作也没有报no session错误。
解决:
我将有问题的A对象的数据库中的ID 手动修改成可以正确执行的,原有数据操作不会报错了。新建数据暂时没有发现有此问题。但是导致此问题的原因不明,如果有人有遇到和我一样的情况,请帮我解惑,十分感激。
posted on 2009-12-25 10:56
liuyimx 阅读(853)
评论(1) 编辑 收藏 所属分类:
hibernate