从Hibernate中的列表列表中获取单个元素

时间:2013-09-06 14:05:04

标签: java hibernate list

所以我在hibernate中有一个ObjectA列表。 ObjectA包含ObjectB列表。

我想为给定的ObjectB.year显示ObjectA.title和ObjectB.rank。

我现在做的是,我迭代第一个列表(ObjectA)并获得标题。然后我迭代第二个列表(ObjectB)以获得指定年份的正确排名。

因为两个列表都很大,所以需要一段时间。有没有办法加快提取速度,让hibernate只从第二个列表中获取一行而不是通过每一行并检查年份?

1 个答案:

答案 0 :(得分:1)

如果你有从Object回到ObjectS的双向关系,你可以。 见http://docs.jboss.org/hibernate/orm/3.5/reference/en/html/collections.html#collections-bidirectional

然后你可以做一个HQL:

select b.rank, a.title from ObjectB b join b.a a where b.year=... and a.id=...