有两个表 parent 和 child 具有外键关系。现在我的要求是编写 hql,它返回一个映射,其中键作为父表 id,值作为子对象列表。
问问题
756 次
1 回答
1
好的。你似乎完全迷失了,所以我会这样做:
String hql =
"select distinct p from Parent p" // get all the parents
+ " left join fetch p.children"; // with their children
List<Parent> parents = session.createQuery(hql).list();
// now transform this list of parents into a Map
Map<Long, List<Child>> result = new HashMap<Long, List<Child>>(parents.size());
for (Parent parent : parents) {
result.put(parent.getId(), parent.getChildren());
}
请注意,我并没有真正看到这张地图的重点。如果您有父母列表,每个父母都包含其孩子,那么地图就不是必需的。
于 2012-06-13T14:35:26.733 回答