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

现在又两个实体类,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,这个怎么解决???

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} 这不就是内个关联查询么 理解了没??

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-19
使用了多对多关联和hibernate,那么不管你从student表还是从teacher表添加,都会要把所有的teacher或者student查出来。
使用多对对,数据库表设计就有瑕疵,要提高效率,考虑下表设计。
第2个回答  2011-05-20
把你的表结构和要查的结果说清楚才好回答

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方法就能得到另一个

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网