锁定老帖子 主题:如何在一个HQL中对子表使用查询条件?
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2004-01-06
一个父表和一个子表, 我想只取出父表的对象, 但是对于父表的每一个对象 我要对他的孩子有一定的条件限制,如果用一个HQL语句可以实现吗? 请哪 位给个例句吧! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2004-01-07
这样可以把
select parent from Parent as parent inner join Child as child where child .属性=? |
|
返回顶楼 | |
发表时间:2004-01-07
不可以, 这样我得到的是一个Object[] 中有一个parent对象和一个child对象阿, 我是想要只得到parent对象, 但是他的childs中只是符合条件的,不是所有的. |
|
返回顶楼 | |
发表时间:2004-01-07
不好意思,我有个失误 , 我想问的是用这样的语句,
child是个集合阿,假如是个set, 该如何来写where条件呢? 条件假如是id>? |
|
返回顶楼 | |
发表时间:2004-01-07
你是不是想根据child的条件得到parent,然后再根据
parent.getChilds()取得那些符合条件的子对象呢? |
|
返回顶楼 | |
发表时间:2004-01-07
是的, 就是得到的parent里的child只能是那些符合条件的,可以得到吗?
|
|
返回顶楼 | |
发表时间:2004-01-07
我也遇到这样的问题,不知道有没好的方法,找班主来看看把
|
|
返回顶楼 | |
发表时间:2004-01-07
String hql = "select parent,child from Parent as parent inner join parent.Child as child where child. id>?";
然后 Query query = ss.createQuery(hql); List list = query.list(); for (int i=0; i< list .size(); ; i++) { Object[] row = (Object[]) list .get(i); Parent p = (Parent ) row[0]; Child c= (Child) row[1]; 然后将 c 放入一个Collection里 } 这样可以把 |
|
返回顶楼 | |
发表时间:2004-01-07
呵呵, 你的方法好土阿, 我知道有一个方法, 用
session.filter(Collection, HQL ) 可以实现, 而且是懒加载, 我是想知道在一个HQL中能不能达到这样的功能, 注意,这个Collection 是 parent.getChild(); 而不是parent的Collectioin. 有没有人能给个答复阿: ( |
|
返回顶楼 | |
发表时间:2004-01-07
我更麻烦
我的Class里有两个Set |
|
返回顶楼 | |