﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-留意生活-文章分类-hibernate</title><link>http://www.blogjava.net/liuyimx/category/40833.html</link><description>思念草原</description><language>zh-cn</language><lastBuildDate>Sat, 09 Jan 2010 17:59:47 GMT</lastBuildDate><pubDate>Sat, 09 Jan 2010 17:59:47 GMT</pubDate><ttl>60</ttl><item><title>hibernate LazyInitializationException - could not initialize proxy - no Session</title><link>http://www.blogjava.net/liuyimx/articles/307242.html</link><dc:creator>liuyimx</dc:creator><author>liuyimx</author><pubDate>Fri, 25 Dec 2009 02:56:00 GMT</pubDate><guid>http://www.blogjava.net/liuyimx/articles/307242.html</guid><wfw:comment>http://www.blogjava.net/liuyimx/comments/307242.html</wfw:comment><comments>http://www.blogjava.net/liuyimx/articles/307242.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/liuyimx/comments/commentRss/307242.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/liuyimx/services/trackbacks/307242.html</trackback:ping><description><![CDATA[<p>我的系统是使用hibernate3,struts2,spring搭建。</p>
<p>在我的系统中，此异常出现我感觉比较奇怪，我已经配置spring OpenSessionInViewFilter,如下<br />
&nbsp;&nbsp;&nbsp; &lt;filter&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;filter-name&gt;lazyLoadingFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;filter-class&gt; org.springframework.orm.hibernate3.support.OpenSessionInViewFilter&lt;/filter-class&gt;<br />
&nbsp;&nbsp; &nbsp;&lt;/filter&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;filter-mapping&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;filter-name&gt;lazyLoadingFilter&lt;/filter-name&gt;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;url-pattern&gt;/*&lt;/url-pattern&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/filter-mapping&gt;<br />
</p>
并确保将此过滤器配置到struts2之前，而且我在<many-to-one>中没有配置fetch和lazy属性，代码中的关联对象之间的调用也是没有问题的。我认为上面的配置应该是已经起到作用了。</many-to-one>
<p>但是在系统中仍然可能报no session 错误，我将操作对象对应的数据库中记录的ID进行修改后，不再报此错误，修改回来后再次报错（其他任何字段都没有修改过,一次可以知道唯一导致no session错误的问题就是对象的ID，而和其他参数都没有任何关系，和spring opensessioninviewfilter也没有关系，与fetch，lazy也没有关系）.</p>
<p>在出现此问题之前，数据库有从外来源导入过数据，通过 del plsql工具导入的。我怀疑是否与导入数据的原因有关。于是我测试通过系统功能新建了测试对象，对新建对象的操作也没有报no session错误。</p>
<p><a href="/images/blogjava_net/liuyimx/WindowsLiveWriter/hibernateLazyInitializationExceptioncoul_99BD/1.png"><img style="border: 0px none; display: inline;" title="对象关系图" alt="对象关系图" src="http://www.blogjava.net/images/blogjava_net/liuyimx/WindowsLiveWriter/hibernateLazyInitializationExceptioncoul_99BD/1_thumb.png" border="0" height="370" width="715" /></a></p>
<p>&nbsp;</p>
<p>解决:</p>
<p>我将有问题的A对象的数据库中的ID 手动修改成可以正确执行的，原有数据操作不会报错了。新建数据暂时没有发现有此问题。但是导致此问题的原因不明，如果有人有遇到和我一样的情况，请帮我解惑，十分感激。</p>
<iframe src="http://stackoverflow.com/users/flair/238468.html?theme=clean" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" height="60" width="210"></iframe>
<img src ="http://www.blogjava.net/liuyimx/aggbug/307242.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/liuyimx/" target="_blank">liuyimx</a> 2009-12-25 10:56 <a href="http://www.blogjava.net/liuyimx/articles/307242.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>