gpt4 book ai didi

java - JPA继承查询(Eclipse Link)

转载 作者:行者123 更新时间:2023-12-02 03:43:14 24 4
gpt4 key购买 nike

考虑以下架构:

public class A {
@Id
int id;
String fieldA;
}
public class B extends A {
String fieldB;
}
public class C extends A {
String fieldC;
}

如何以这种方式查询A以获得所有C并获得<强>B的位置fieldB="someValue"

我尝试使用 treat 来进行向下转换,但似乎 B 上的过滤器正在作用于所有父类(A).

这样的查询首先可能吗?

最佳答案

您可以使用“type”关键字创建一个查询来按类型进行过滤,并创建一个存在子查询来过滤 C 实体:

select a
from A a
where type(a) = :type
or exists (
select 1
from B b
where b.id = a.id
and b.fieldB = :fieldB
)

实体C的类类型是通过调用查询实例的setParameter方法传递的。

关于java - JPA继承查询(Eclipse Link),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36600198/

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