hibernate Criteria 多表关联查询

tiantiancn 2011-04-20 01:20:11
一个关于使用Criteria 进行多表关联查询的问题。
有两个表 Contract, Facility, 它们是一对多的关系,Facility为多端。

1,Criteria criteria = session.createCriteria(Contract.class);
2,Criteria facilityCriteria = criteria.createCriteria("facilitySet");
3,facilityCriteria.add(Restrictions.eq("facilityId", 100));

4,criteria.setFetchMode("facilitySet", FetchMode.JOIN);// 或者 FetchMode.SELECT
5,contractList = criteria.list();

执行后却不能把 Facility 表中的数据抓取出来。
如果把第2和第3两行去掉的话,就能把 Facility 表中的数据抓取出来。

请问问题出在哪里?我想要在不去掉第2和第3两行的情况下把 Facility 表中的数据抓取出来应该怎么做?
...全文
2776 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lee19900524 2012-09-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

问题已经解决。
把第2行Criteria facilityCriteria = criteria.createCriteria("facilitySet");
改成这这样Criteria facilityCriteria = criteria.createCriteria("facilitySet",Criteria.LEFT_JOIN);
[/Quote]
facilitySet是什么 关联的列?
蛋黄车 2011-04-20
  • 打赏
  • 举报
回复
...表示我很少用Criteria
tiantiancn 2011-04-20
  • 打赏
  • 举报
回复
问题已经解决。
把第2行Criteria facilityCriteria = criteria.createCriteria("facilitySet");
改成这这样Criteria facilityCriteria = criteria.createCriteria("facilitySet",Criteria.LEFT_JOIN);

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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