spring-data-jpa JPQL/JPA收集替代项

h22fl7wq  于 2022-11-10  发布在  Spring
关注(0)|答案(1)|浏览(219)

我使用投影来查询一些数据并Map结果。
但是,生成的查询提取了大量我不需要的数据/列,然后框架将其转换。
这会消耗大量的性能,并且此“Map”过程大约需要5分钟。
我正在寻找替代方案,如果停止使用投影并使用DTO构造,这5分钟将变成200毫秒。
但是,我需要的其中一个字段是子实体的主键。
对于JPQL,是否有从(ORACLE)收集的替代方法?
类似的东西(代码下面是不完整的,只是为了说明我需要什么,你可以推断,对吗?):

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

导致了集合类

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

dojqjjoe1#

我设法通过返回结果作为元组(没有收集)来解决。然后使用分组(Java/并行流)进行Map。
Map花费了大量的CPU,但它比以前更好.
用我的测试数据量:原本13秒,现在1秒。

相关问题