一尘不染

HQL和一对多查询

hibernate

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

   class Player {
      List<Item> inventory;
   }

   class Item {
      List<Enchantment> enchantments;
   }

   class Enchantment {
      boolean isSuperiorEnchantment;
   }

我需要构造一个HQL查询,该查询会向我返回所有至少具有一项附有isSuperiorEnchantment标记并附有结界的物品的所有玩家的列表。我无法终生想出一种用HQL来表达这一点的方法。

有任何想法吗?


阅读 242

收藏
2020-06-20

共1个答案

一尘不染

假设以上所有条件都适当,则您要查找的查询是:

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