首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

hiberante延迟加载失效,该怎么处理

2013-12-05 
hiberante延迟加载失效最近在学习hiberante,遇到了一个问题,关于一对一延迟加载失效的问题,到现在还没解决

hiberante延迟加载失效
    最近在学习hiberante,遇到了一个问题,关于一对一延迟加载失效的问题,到现在还没解决。以下是代码:Person.java


    有点不是很明白,我明明已经在被维护端设置了懒加载fetch=FetchType.LAZY,可是最后还是失效。昨天查了以下,看到一片帖子:http://blog.csdn.net/zgmzyr/article/details/5882073,照帖子讲解,应该是查询IdCard的时候hiberante没有给其对应的Person生成代理对象,而是直接查询了Person的内容,导致懒加载失效,解决办法是在IdCard类中给其对应的Person加一个注解属性optional=false,这样Hiberante就会知道该IdCard对应的Person不能为空,因此会生成代理对象。可是亲测了一下,还是不行,懒加载还是失效,查询过程中还是会将Person一起查出来,不过我还是相信,应该就是生成代理对象失败的原因导致,之后我又查了hibernate的注解文档,加了其他注解试了一下,比如@LazyToOne(LazyToOneOption.PROXY),结果还是出现懒加载失效的问题。到现在问题还没解决,希望哪位同学知道的指导一下!谢谢!


把optional去掉,在把你的cascade里面的CascadeType.PERSIST去掉这个级联会在你查询的对象持久化时级联持久化关联的对象也就不会懒加载了

热点排行