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

HQL左无关实体的加入

巴照
2023-03-14
问题内容

我有2个实体,AB。它们是相关的,但是我不想将关系映射添加到bean

我们如何 在 HQL或条件之间A``B使用 左外部 联接 使用它们

有一些解决方法,

  1. 按照此处所述使用本机SQL 。
  2. 添加关系并使用 从A选择a a左连接ab
  3. 我们可以在HQL中进行 内部 联接,例如从A a,B b中选择*,其中a.some = b.some

我一直回头看这两个选项,这还有其他选择吗?还是这不可能?


问题答案:

当前,使用HQL在where子句中连接不相关类的t​​heta样式仅支持内部连接。

该请求用于支持外连接这样的情况是目前的3次最投票增强
,但我不认为,因为它需要这个功能将在不久的功能来实现重新执行现有的基于鹿角查询分析器的第一这似乎是海事组织的一项艰巨任务。

如果您坚持使用HQL执行左联接而不添加A和B之间的关系,则可以先使用选项3进行内部联接,然后使用以下HQL

from A a where a.some not in ( select b.some from B)

找出所有无法加入B的A并以程序方式合并结果。

更新资料

从5.1.0版开始,HHH-16(不相关类的显式连接)已修复,我们应该能够连接不相关的实体。



 类似资料:
  • 问题内容: 可以说我有两个表(A,B),例如: 我也有他们的实体。我想编写一个HQL,以便结果集类似于(其中Ac = Bc): 由于hibernate不支持子句,因此我很困,而且我不知道如何编写查询。 问题答案: 您必须使用交叉联接表示法: 当然,没有办法以这种方式实现外部联接,因此,在这种情况下,您可能会遇到一些麻烦。

  • 我一直试图将一个实体添加到数据库中,该实体与另一个实体有OneTo许多关系,但当我插入该实体时,它说无法插入id,因为它是null。 我已经映射了这样的父子类: 子实体: 我的json长这样: 这是hibernate抛出的错误: 错误Msg=ORA-01400:无法将NULL插入(“DQISAPPS”。“目录\备注”。“目录\ ID”) 在甲骨文。jdbc。驾驶员t4cttiore11。proce

  • 我有冬眠实体: 组织(有2个ManyTo多人映射(常规人员列表和特权人员列表)) 人 有没有办法使HQL等效于此查询? 我不知道如何在最后一个左连接中创建条件p.id=op.person\u id或p.id=opp.person\u id。我看到了带有关键字的,但它创建了带有“AND”的条件,而不是“OR”。

  • 无论B表中是否有匹配的记录,左外连接都应该从左表中获取所有数据,但如果左表的right_id列为空,则不能获取记录。 我在解释更多 我发现了这个, HQL支持两种形式的关联连接:隐式和显式。 上一节中显示的查询都使用显式形式,即在from子句中显式使用join关键字。这是推荐的表格。

  • null 这似乎意味着我不像使用简单的“From customer”查询那样获取customer实体的实例。如果是这种情况,如何返回客户实体?如果没有,那我做错了什么?

  • 问题内容: 我正在使用清除不需要的HTML标签(例如)中的一些文本 问题是,它取代例如用(这会导致麻烦的我,因为它不是“纯XML”)。 例如 产量 但我想 有没有简单的方法可以做到这一点?(即比转换回结果更简单。) 问题答案: 您可以配置Jsoup的转义模式:使用将为您提供无实体输出。 这是一个完整的代码段,可以接受作为输入,并使用进行清理: