gpt4 book ai didi

java - 如何使用 CriteriaBuilder 设置此 SQL 查询?

转载 作者:行者123 更新时间:2023-11-29 08:57:15 26 4
gpt4 key购买 nike

要从数据库中选择概览,我必须使用如下语句:

select a1.begin, a1.end, b1.name, c1.name, d1.name, e1.name, f1.name, ...
from a2, b1, b2, c1, c2, a1
left outer join (d1 join d2 on d2.id = d1.parent and d1.user = ?) on
d1.deleted = 0 and d1.parent = a1.d1_id
left outer join (e1 join e2 on e2.id = e1.parent and e1.user = ?) on
e1.deleted = 0 and e1.parent = a1.e1_id
left outer join (f1 join f2 on f2.id = f1.parent and f1.user = ?) on
f1.deleted = 0 and f1.parent = a1.f1_id
where .... a lot more stuff...

该语句非常有效,数据库可以非常快速地处理它。相信我,绝对没有其他方法可以获取所需的数据。

直到现在,我还可以很自豪地说,在我们的 Java 项目中,我没有一个纯 EJB-QL 甚至 SQL 的字眼。但是现在我不确定是否有任何方法可以使用 CriteriaBuilder 来构建这样的语句。我完全不知道如何创建具有多个条件甚至嵌套内部连接的外部连接。

非常感谢任何提示。

谢谢亨内斯

最佳答案

不了解对象模型很难给出具体的帮助,但我相信你想使用join方法并指定join类型。使用它,您可以嵌套连接,这些连接将使用在指定属性映射上定义的关系。可以在此处找到解释标准 API 的操作: http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Criteria#Join

Eclipselink 还通过功能 https://bugs.eclipse.org/bugs/show_bug.cgi?id=367452 支持 JPQL 中的“on”子句和标准查询

关于java - 如何使用 CriteriaBuilder 设置此 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19562452/

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