前台对象传到后台延迟加载问题

J2EE 码拜 9年前 (2015-05-10) 747次浏览 0个评论
 

两张表
person
id name 

ball
id pid

person 一对多 ball

我前台 新建一个 person对象
然后 取 person对象里面的 
public Set <ball> getBalls ()
    {
        return balls;
    }
他就报错
LazyInitializationException: failed to lazily initialize a collection of
我不是从后台取出的  对象  为什么会报  延迟加载的 错误

15分
因为你配置了一对多映射的关系,hibernate不会管你person对象是从哪里来的.!
缓存里没有它就会去查.!
但是默认延迟加载为true,就是说当你用person去取balls的时候,才会去加载,然而此时session可能已经关闭, 所以才会报这个错吧. 
把set中lazy设为false!  
5分
你看看你配置里面呢,,,是不是哪边加了lazy-init
那还有个问题 
如果我person里面的balls有ball对象
没问题
但如果  我吧person里面的balls清空  
他就会报错 
这个是为什么?
引用 3 楼 azrael99999 的回复:

那还有个问题 
如果我person里面的balls有ball对象
没问题
但如果 我吧person里面的balls清空  
他就会报错 
这个是为什么?

因为清空了以后就会去查数据库


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明前台对象传到后台延迟加载问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!