去除持久化属性要么去掉对应的映射信息,要么更改注解方式。
你如果要用到其关联的属性的话,则需要将其lazy设为false,将其属性全部查询出来,问题是你有时候不想每次都将其查不来?
由于你的lazy默认是true,但是在一个session范围中,Hibernate会自动帮你将那些没有初始化的属性给初始化。
建议的方法:
1、 使用OpenSessionInViewFilter可以让session在页面初始化完毕后再关闭
2、 如果是一些公共数据,可以使用Hibernate的查询缓存
3、 Hibernate也有个方法判断其属性是否初始化,如果你在有的地方要用,有的地方不用的时候,你可以先用那个方法判断下,然后确认是否初始化。
处理代理对象的LazyInitialize的问题,
一般的做法是OpenSessionInView,
也可以取出对象的时候用Hibernate.initialize(c.getOrders()),把其中的懒加载的属性初始化一下,就不会报错了,但愿能帮到你
你好!
lazy 的,拿来用时用session的refresh(object) 刷新一下。
仅代表个人观点,不喜勿喷,谢谢。
额。你能描述得详细点吗?就是你要读到的效果?
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....