HQL和一对多查询

时间:2009-07-22 19:28:07

标签: hibernate hql

我有Hibernate域对象,如下所示:

   class Player {
      List<Item> inventory;
   }

   class Item {
      List<Enchantment> enchantments;
   }

   class Enchantment {
      boolean isSuperiorEnchantment;
   }

我需要构建一个HQL查询,向我返回一个列表,其中列出了至少有一个带有附件的项目,其中设置了isSuperiorEnchantment标志。我无法为我的生活找到一种在HQL中表达这一点的方法。

有什么想法吗?

1 个答案:

答案 0 :(得分:20)

假设上述所有内容都有适当的映射,那么您正在寻找的查询是:

select p
from Player as p
  left join p.inventory as i
  left join i.enchantments as e
where e.isSuperiorEnchantment = 1