gpt4 book ai didi

java - 不相关实体的 HQL 左连接

转载 作者:IT老高 更新时间:2023-10-28 20:40:15 27 4
gpt4 key购买 nike

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

我们如何在AB之间使用左外连接,使用HQL或标准

有一些解决方法可以解决这个问题,

  1. 按照说明使用 Native SQL here .
  2. 添加关系并使用select a from A a left join a.b
  3. 我们可以在 HQL 中执行 inner join 作为 select * from A a, B b where a.some=b.some

我总是退回这两个选项,有什么替代方案吗?或者这不可能?

最佳答案

目前,使用HQL在where子句中加入不相关类的t​​heta风格只支持内连接。

request支持这种情况的外连接是currently the 3-rd most voted enhancement但我认为此功能不会在近功能中实现,因为它需要 re-implementation of the current ANTLER-based query parser首先,这似乎是 IMO 的一项艰巨任务。

如果你坚持用HQL做left join,不加A和B的关系,可以先用option 3做inner join,再用下面的HQL

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

找出所有不能加入B的A并以编程方式组合结果。

更新

从 5.1.0 版开始 HHH-16 (Explicit joins on unrelated classes)是固定的,我们应该能够加入不相关的实体。

关于java - 不相关实体的 HQL 左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9892008/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com