【问题标题】:JPQL/JPA Collect alternativeJPQL/JPA 收集替代品
【发布时间】:2022-11-03 19:02:22
【问题描述】:

我正在使用投影来查询一些数据并映射结果。

但是,生成的查询会提取很多我不需要的数据/列,然后框架对其进行转换。

这会消耗大量性能,而这个“映射”过程大约需要 5 分钟。

我正在寻找替代方案,如果停止使用投影并使用 DTO 构造,这 5 分钟将变为 200 毫秒。

但是,我需要的字段之一是子实体的主键。

从(ORACLE)收集JPQL是否有任何替代方法?

类似的东西(下面的代码不完整,只是为了解释我需要什么,你可以推断出来,对吧?):

select new dto(id, name, collect(child.id)) from.... group by id, name

导致类的集合

class dto (
   String id,
   String name,
   Collection<String> childIds
)

【问题讨论】:

标签: java jpa spring-data-jpa jpql


【解决方案1】:

我设法通过返回结果来解决元组(不收集)。然后使用分组(Java/Parallel Stream)进行映射。

映射花费了很多 CPU,但它比以前好多了。

使用我的大量测试数据:它需要 13 秒,现在是 1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-30
    • 2012-08-30
    • 2019-06-06
    相关资源
    最近更新 更多