我有Hibernate域对象,如下所示:
class Player {
List<Item> inventory;
}
class Item {
List<Enchantment> enchantments;
}
class Enchantment {
boolean isSuperiorEnchantment;
}
我需要构建一个HQL查询,向我返回一个列表,其中列出了至少有一个带有附件的项目,其中设置了isSuperiorEnchantment
标志。我无法为我的生活找到一种在HQL中表达这一点的方法。
有什么想法吗?
答案 0 :(得分:20)
假设上述所有内容都有适当的映射,那么您正在寻找的查询是:
select p
from Player as p
left join p.inventory as i
left join i.enchantments as e
where e.isSuperiorEnchantment = 1