当前位置: 首页 > 面试题库 >

HQL和一对多查询

澹台宾白
2023-03-14
问题内容

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

   class Player {
      List<Item> inventory;
   }

   class Item {
      List<Enchantment> enchantments;
   }

   class Enchantment {
      boolean isSuperiorEnchantment;
   }

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

有任何想法吗?


问题答案:

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

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


 类似资料:
  • 问题内容: 我在Hibernate中具有以下一对一关系(可能为null): 我正在尝试使用HQL选择所有具有非空详细信息的实体: 但这会返回所有实体,无论详细信息是否为空。 那么正确的HQL是什么? 问题答案: 好的,我找到了解决方案:

  • 我需要以下场景的SQL查询。 @ManyToOne@JoinColumn(name=“PRODUCT_ID”)私有产品产品; 但我没有在产品中指定一个。

  • 本文向大家介绍一对一、一对多的关联查询 ?相关面试题,主要包含被问及一对一、一对多的关联查询 ?时的应答技巧和注意事项,需要的朋友参考一下

  • 问题内容: 好的,所以这可能是一个琐碎的问题,但是我在可视化和理解差异以及何时使用它们方面遇到困难。对于诸如单向和双向映射之类的概念如何影响一对多/多对多关系,我也还不清楚。我现在正在使用Hibernate,因此任何与ORM相关的解释都将有所帮助。 举例来说,我有以下设置: 那么在这种情况下,我将进行哪种映射?对于这个特定示例的答案肯定会受到赞赏,但我也确实希望获得何时使用一对多和多对多以及何时使

  • 实现了一对多的关系,它运行良好。 我的问题是当我运行下面的查询时,如果表有100个员工行,每个员工有两个部门。数据库查询被调用了101次,因为对每个员工都是调用部门查询,要完成调用全部100行需要很长时间,有没有人可以提出替代的解决方案? 输出XML:

  • 我在编写HQL查询时遇到困难,无法从我的案例实体中仅选择案例ID、标题和案例状态字段。返回的病例必须根据病例ID进行区分。我不希望包含名称和用户ID字段。我也不想对caseid、title和caseStatus字段使用延迟抓取。请注意,案例状态字段是一对多列表。以下是实体。为了节省空间,省略了getter/setter。 我的目标是检索一个不同的