hibernate:怎么写这样一个 hql语句

有两张表;users(id,name,password)等信息,还有一个表是schools(schools_id,school_name,user_id),其中user的... 有两张表;users(id,name,password)等信息,还有一个表是schools(schools_id,school_name,user_id),其中user的id是school表中的外键,也就是schools中的user_id!
现在我有个问题,就是当Hibernate把上面的两张表转换成对象时,
class Users{
private id;
private name;
private password;
private Set schools = new HashSet(0);
……

}

class Schools{
private schoolId;
private schoolName;
private Users users;
……

}

我现在 想根据学校的school_id得到users的信息,请问我的hql语句该怎么写呢!麻烦大家啊,比较急,谢谢各位! 没分了,就这么点了!
谢谢各位!呵呵,分还是很多的,别csdn上复制过来的!是csdn分不多!写的时候没注意,漏了类型!
展开
 我来答
晓蛹
2009-05-03 · TA获得超过110个赞
知道答主
回答量:38
采纳率:0%
帮助的人:21.7万
展开全部
感觉你的表建的不规范... 应该User表中有School的id 那样才会有一个学校对应多个user.. 个人看法..

定义了保存,修改,删除,查找等方法的 类为 myDao
则有:
myDao dao=new myDao();
School school=dao.findById(School.class,school_id);
User user=school.getUsers();
------------------------------
myDao里的findById()方法定义如下:

public Object findById(Class cla,Integer id)
{
Session session = HibernateSessionFactory.getSession();
Object o = session.get(cla, id);
session.close();
return o;
}
我知道的就这些了, 希望能帮到你..呵呵..
ZoviKoo
2009-05-03 · TA获得超过293个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:165万
展开全部
hql语句还是 from Schools where schoolId = ?

你只要在Schools类的Hibernate配置文件里的Users users注册标签里加上lazy=false 就可以了 这样你Schools表他会自动的把所有有关系的别的表的值也查出来,调用的时候只要用返回的List 的名字.users.你要的users表里的东西就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liujia9234
2009-05-03
知道答主
回答量:36
采纳率:0%
帮助的人:13.6万
展开全部
首先取得school对象,根据hibernate的延迟加载,schools和users 表是one-to-more关系,
取得school对象,
hql语句:select s from Schools s where school_id=班级ID信息
取出一个Schools 对象,调用Schools 对象的getUsers()属性取得Users对象。

你上面写的两个类是错误的,每个属性都没数据类型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-05-04
展开全部
from Schools s join fetch s.users where s.schoolId=?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式