gpt4 book ai didi

hibernate - HQL - 只加入一个子类

转载 作者:行者123 更新时间:2023-12-01 06:38:19 25 4
gpt4 key购买 nike

我的模型(InheritanceType.JOINED):

class Parent{...} 
class Child1 extends Parent{...}
class Child2 extends Parent{...}
class Child3 extends Parent{...}
class Child4 extends Parent{...}
class Agg{
List<Parent> l;
}


Agg 通过连接表与父级连接。父级没有 Agg 对象。

我正在对 Child2 进行一些过滤,即:
“从 Child2 ch2 WHERE ch2.field1 =... ch2.field2 =... 等”

我现在如何将 Child2 与 Agg 连接起来,而不会导致与所有子类表的连接。
我只想加入 Child2 表(不加入 Child2、Child3、Child4)

我试图使用 'class' 属性(即 ch2.class =...)结果是正确的,但生成的查询包含对每个子类的连接;/

HQL "From Agg a Join a.l"也加入所有子类(即使是 ch2.class)

谢谢!

最佳答案

您可以使用交叉连接来解决这个问题,因为 DBMS 无论如何都会将其优化为内部连接。像这样的东西 SELECT ch2, agg FROM Child2 ch2, Agg agg WHERE ch2.joinField = agg.id AND ch2.field1 =... AND ch2.field2 =...

关于hibernate - HQL - 只加入一个子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13002430/

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