gpt4 book ai didi

jpa - FROM 子句中的 JPA 子查询是否可能?

转载 作者:行者123 更新时间:2023-12-04 21:05:17 29 4
gpt4 key购买 nike

我在使用 JPA 时遇到了一点问题。考虑这种情况:

表 A (id_a) | 表 B (id_b, id_a)

我需要的是这样的查询:

Select a.*, c.quantity from A as a, (Select Count(*) as quantity 
from B as b where b.id_a = a.id_a) as c;

问题是我想使用 jpa 查询而不是 native 查询,如下所示:

Select a, c FROM A a, (Select Count(b) FROM B b where a.idA = b.a.idA) c;

然后我可以从结果(每个节点中带有 a 和 c 的 Object[] 列表)进行迭代,然后分配 a.quantity = c;

我再说一遍,我不想使用 native 查询,但我发现除了使用冗余数据之外别无他法,并向 A 添加另一列名为 Quantity ,每次我从 B 插入和删除时,更新 A 中的此列.

请帮忙,我在某处读到 JPA 不接受 Form 子句中的子查询,那么,我该怎么办?

非常感谢!

最佳答案

JPA 不支持 FROM 子句中的子选择,但 EclipseLink 2.4 当前的里程碑版本提供此支持。

看, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/JPQL#Sub-selects_in_FROM_clause

不过,您或许可以仅使用普通连接重写查询。

也许,

Select a, size(a.bs) from A a

Select a, count(b) from A a join a.bs b group by a

关于jpa - FROM 子句中的 JPA 子查询是否可能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526324/

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