标题:关于hibernate get问题
只看楼主
亮剑
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-10-18
 问题点数:0 回复次数:6 
关于hibernate get问题
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse resp) throws Exception {

LoginActionForm loginfrom = (LoginActionForm)form;
User user = loginfrom.getUser();
//数据库的访问:根据user load出一个user_temp
User user_temp= userbus.loginUser(user);

if(user_temp!=null){
HttpSession session = req.getSession();
Set orders = user_temp.getOrders();//获得它的orders集合
//但是为什么只有当我执行orders.size()的时候它才会去load的出对应的orders如果不加这句他就不会load出orders
orders.size();
session.setAttribute("orders",orders);
session.setAttribute("user", user_temp);
return mapping.findForward("index");
}
return mapping.findForward("register");
}
我的 User 与 orders 是一对多的关系
搜索更多相关主题的帖子: get hibernate 数据库 user temp 
2007-04-05 22:23
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
得分:0 
应该是lazy为true了
如果lazy为true那么orders是一个代理类,而不是真正的orders
只有在第一次访问的时候才会去加载数据

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2007-04-05 22:42
亮剑
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-10-18
得分:0 
如何来设置呢
2007-04-05 22:55
支离破碎
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:737
专家分:0
注 册:2007-1-4
得分:0 
如果是延时加载的问题就可以在配置文件设置,可以在hbm.xml文件中设置。

人生漂泊無依,有如浮萍菱花,隨水飄流,你会在我这里停留吗?
[url=http://51mynet.]http://51mynet.[/url]
2007-04-06 09:06
黄袖标
Rank: 4
等 级:贵宾
威 望:13
帖 子:676
专家分:0
注 册:2007-3-22
得分:0 
楼主只要了解hib的加载策略问题就很清楚了,如果楼主对这个不是很熟的,就都用立即加载吧。这样可能会降低一些效率,有点辜负了写hib的人的期望。

我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
2007-04-06 18:52
亮剑
Rank: 1
等 级:新手上路
帖 子:148
专家分:0
注 册:2006-10-18
得分:0 
我在load的时候用的就是get方法 它不就是立即加载的吗 但是好像没用阿
2007-04-06 20:06
黄袖标
Rank: 4
等 级:贵宾
威 望:13
帖 子:676
专家分:0
注 册:2007-3-22
得分:0 
还是加载的问题,楼主把在不同加载方式下,hib是如何抓取数据的原则看下就知道了。还是那句老话,实在搞不明白就用立即加载。

我胡汉三又回来啦!物是人非啊,只有静夜思大大还在。
2007-04-07 16:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-129588-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.283604 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved