我使用投影来查询一些数据并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
)
1条答案
按热度按时间dojqjjoe1#
我设法通过返回结果作为元组(没有收集)来解决。然后使用分组(Java/并行流)进行Map。
Map花费了大量的CPU,但它比以前更好.
用我的测试数据量:原本13秒,现在1秒。