hibernate中,怎么样同时查询多个表,连接查询

现在又两个实体类,User和Category同时数据库中有两个表t_user和t_categoryUser类中字段:publicclassUser{privateStri... 现在又两个实体类,User和Category 同时数据库中有两个表t_user和 t_category
User类中字段:public class User {
private String userID; //用户ID
private String username; //用户名
private String password; //用户密码
private String userclass; //用户类型:
private String email; //邮箱
private Date regdate; //注册日期:若不填则系统默认当前日期
private int usable;
Category 类中字段:
private String categoryID; // 版块ID
private String userID; // 版主ID
private String categoryName; // 版块名称
private String description; // 版块介绍
private int categoryNum; // 版块贴数 默认为0
private int hint; // 点击率 默认为0
private int usable;

而查询出的结果应该是 categoryName,description,userName,这个怎么解决???
展开
 我来答
xiaoakun_
2011-05-20
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
hibernate都给你解决好了 说白点吧。 比如你有一个user表 还有一个user1表 (多对一(无所谓))里面有关联字段user_id ; 对应user1表 。 你要查两个表的一条数据 可以这样。
比如你一个findAll都查出来了 显示数据的时候(假如内个关联字段hibernate命名为users) : user.getusers().getusers(); 这样就能取到想要的数据 不论是一条还是一个list 同样 el表达式 在jsp页内也一样可以这么做 比如var的变量名叫temp 循环的时候 可以
${temp.users.users} 这样就能取出你想要的数据 自己手打的 不管是不是你想要的 给个分吧、、
追问
还是不太清楚,怎么findAll?还有怎么用 user.getusers().getusers();   怎么用两个?
追答
findAll 是我举的例子  就是查询全部    user.getusers().getuser();    这么说吧  前面的getusers()就是关联表的外键  后面内个getusers(); 是被关联表里对应的数据 只不过hibernate要从对象的角度考虑  这样说是不是明白了 假如你要在JSP页面显示数据

${temp.name}
${temp.users.users} 这不就是内个关联查询么 理解了没??
通若珍
2011-05-19 · TA获得超过1051个赞
知道小有建树答主
回答量:633
采纳率:0%
帮助的人:0
展开全部
使用了多对多关联和hibernate,那么不管你从student表还是从teacher表添加,都会要把所有的teacher或者student查出来。
使用多对对,数据库表设计就有瑕疵,要提高效率,考虑下表设计。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ahyyxx222
2011-05-20 · TA获得超过2532个赞
知道小有建树答主
回答量:1405
采纳率:33%
帮助的人:1208万
展开全部
把你的表结构和要查的结果说清楚才好回答

select u. userName, c. categoryName, c. description from User u, Category c where u.userID = c.userID and u.userID = ?
以上是hql语句查出来的结果是List<Object[]>
遍历以后Object[0]是userName,Object[1]是categoryName,Object[2]是description

还有,这种关联的类这么写是违背了hibernate初衷的,这样你就无法使用hibernate原本很方便的关联机制了,Category中的String userID应该写成User user;
只要查出一个对象,通过get方法就能得到另一个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式