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,这个怎么解决??? 展开
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都查出来了 显示数据的时候(假如内个关联字段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} 这不就是内个关联查询么 理解了没??
展开全部
使用了多对多关联和hibernate,那么不管你从student表还是从teacher表添加,都会要把所有的teacher或者student查出来。
使用多对对,数据库表设计就有瑕疵,要提高效率,考虑下表设计。
使用多对对,数据库表设计就有瑕疵,要提高效率,考虑下表设计。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的表结构和要查的结果说清楚才好回答
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方法就能得到另一个
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方法就能得到另一个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询