gpt4 book ai didi

java - Eclipselink 扩展 JOIN 子句

转载 作者:搜寻专家 更新时间:2023-11-01 03:25:43 25 4
gpt4 key购买 nike

当前代码:

CriteriaQuery criteriaQuery = cb.createQuery(MinutisPreke.class);
Root<MinutisPreke> from = criteriaQuery.from(MinutisPreke.class);
Join<LankomumasDiena, MinutisPreke> ld = from.join("lankomumasDiena", JoinType.LEFT);
cb.and(cb.equal(ld.get("intervalas"), 7));

生成以下查询:

SELECT COUNT(t0.pr_id) FROM preke AS t0 
LEFT OUTER JOIN lankomumas AS t1
ON (t1.pr_id = t0.pr_id)
WHERE (t1.intervalas = 7)

如何使用 条件查询 在 LEFT OUTER JOIN ON 子句中添加语句,以便我的代码生成此查询:

SELECT COUNT(t0.pr_id) FROM preke AS t0 
LEFT OUTER JOIN lankomumas AS t1
ON (t1.pr_id = t0.pr_id) AND (t1.intervalas = 7)

编辑 1:如果您在第一个和第二个查询中没有发现任何差异,请阅读此线程: SQL join: where clause vs. on clause

最佳答案

EclipseLink 在 2.5 每晚构建中添加了对 ON 子句的支持,如下所述: https://bugs.eclipse.org/bugs/show_bug.cgi?id=367452但它不是 JPA 规范的一部分,因此您需要将 Join 转换为 EclipseLink 的 org.eclipse.persistence.internal.jpa.querydef.JoinImpl

((JoinImpl)ld).on(cb.and(cb.equal(ld.get("intervalas"), 7));

关于java - Eclipselink 扩展 JOIN 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14315547/

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