hibernate 一对多查询问题

bbblove65 2010-08-19 09:54:38
请教下,在hibernate中建立1->n的单向关联。
我想要在1的一方查询,获取1的全部对象同时也需要1关联的n的表的部分数据.现在查询出来的sql语句如下
Hibernate:
select
chcategory0_.category_id as category1_1_,
chcategory0_.cat_name as cat2_1_,
chcategory0_.cat_order as cat3_1_,
chcategory0_.is_valid as is4_1_
from
change.ch_category chcategory0_
where
is_valid=1
Hibernate:
select
chmembers0_.category_id as category6_1_,
chmembers0_.id as id1_,
chmembers0_.id as id0_0_,
chmembers0_.user_id as user2_0_0_,
chmembers0_.user_name as user3_0_0_,
chmembers0_.pass_word as pass4_0_0_,
chmembers0_.status as status0_0_,
chmembers0_.category_id as category6_0_0_,
chmembers0_.channels_id as channels7_0_0_,
chmembers0_.cooperation_id as cooperat8_0_0_,
chmembers0_.qq as qq0_0_,
chmembers0_.msn as msn0_0_,
chmembers0_.mobile as mobile0_0_,
from
change.ch_members chmembers0_
where
chmembers0_.category_id=?
。。。。。。。。。。。。。。。。。。。。。。。。。
想要的效果是在关联的对象加入条件例如:
Hibernate:
select
chmembers0_.category_id as category6_1_,
chmembers0_.id as id1_,
chmembers0_.id as id0_0_,
chmembers0_.user_id as user2_0_0_,
chmembers0_.user_name as user3_0_0_,
chmembers0_.pass_word as pass4_0_0_,
chmembers0_.status as status0_0_,
chmembers0_.category_id as category6_0_0_,
chmembers0_.channels_id as channels7_0_0_,
chmembers0_.cooperation_id as cooperat8_0_0_,
chmembers0_.qq as qq0_0_,
chmembers0_.msn as msn0_0_,
chmembers0_.mobile as mobile0_0_,
from
change.ch_members chmembers0_
where
chmembers0_.category_id=?
limt 5
...全文
203 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbblove65 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 madfatso 的回复:]

引用 3 楼 bbblove65 的回复:
引用 2 楼 madfatso 的回复:
不是如何遍历,是想要hibernate关联生成的sql加上一定的条……

createSQLQuery(放你的功能SQL)
[/Quote]

大哥不是这个意思!
bclass 班级表 students学生表
Query query = session.createQuery("FROM bclass");
List lx= query.list();
for (int i = 0; i < lx.size(); i++)
{
bclass bc = (bclass) l1.get(i);//班级信息
Set mset=bc.getStudents();//学生信息(全部的)
我要的是给学生检索加入条件不是全部学生
madFatso 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bbblove65 的回复:]
引用 2 楼 madfatso 的回复:
不是如何遍历,是想要hibernate关联生成的sql加上一定的条……
[/Quote]
createSQLQuery(放你的功能SQL)
bbblove65 2010-08-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 madfatso 的回复:]

Java code
List<Object []> list = session.createSQLQuery("").list();
for(Object [] obj : list){
System.out.println(obj[0].toString());
}
[/Quote]
不是如何遍历,是想要hibernate关联生成的sql加上一定的条件。
比如 分类->商品 1个分类下有上万种商品,只要其中符合条件的商品几条。现在每次查询分类的到的关联商品对象是全部
madFatso 2010-08-19
  • 打赏
  • 举报
回复
	List<Object []> list = session.createSQLQuery("").list();
for(Object [] obj : list){
System.out.println(obj[0].toString());
}
安心逍遥 2010-08-19
  • 打赏
  • 举报
回复
哎,帮楼主顶一下拉。这个还没学呢,我是超级菜鸟啊
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yang4187668 的回复:]
FROM bclass b WHERE b.students.name="张三"
[/Quote]



select * from bclass b,students s where b.cid=s.cid and s.name='张三'
yang4187668 2010-08-19
  • 打赏
  • 举报
回复
FROM bclass b WHERE b.students.name="张三"

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧