gpt4 book ai didi

java - JPQL Join 获取具有可为空列的表

转载 作者:行者123 更新时间:2023-11-30 03:32:29 25 4
gpt4 key购买 nike

我的问题是这样的;我有一个实体,其中有 2 个其他实体的列表。当我使用查询来选择它们时,如下所示;

从 RtsResource ru WHERE ru.resourceId= :arg1 中选择 DISTINCT ru

我得到了大约 500 个 hibernate 选择,而且速度非常慢。所以我尝试了;

从 RtsResource ru JOIN FETCH ru.projectResources 选择 DISTINCT ru JOIN FETCH ru.resourceSkills WHERE ru.resourceId= :arg1

这要快得多,但它只选择projectResources或resourceSkills不为空的查询。

有没有一种方法可以编写类似于第二个查询但也包含空值的查询?

或者有没有办法在不使用 Fetch Joins 的情况下解决 #1 的问题?

值得注意的是,我将 Java 与 Spring、JPA 和 Hibernate 结合使用。

最佳答案

阅读大量文档后,我发现 LEFT FETCH JOIN 语句就是为此目的而发明的。查询应为;

从 RtsResource ru LEFT JOIN FETCH ru.projectResources 中选择 DISTINCT ru LEFT JOIN FETCH ru.resourceSkills WHERE ru.resourceId= :arg1

效果非常好。

关于java - JPQL Join 获取具有可为空列的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28694929/

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