You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用QueryDSL获取实体ID与关联实体数量的映射(不传输实体)

QueryDSL-4.2.1 获取实体ID与关联实体数量的映射

你需要调整分组字段和统计逻辑,确保以qE1的ID为键,关联的qE2实体数量为值,同时避免传输完整实体。正确代码如下:

Map<Long, Long> idToCountMap = queryFactory
    .from(qE1)
    .leftJoin(qE2).on(qE2.qE1_id.eq(qE1.id)) // 用leftJoin避免过滤掉无关联qE2的qE1
    .where(qE1_exp)
    .transform(GroupBy.groupBy(qE1.id).as(GroupBy.count(qE2.id)));

关键说明:

  • 分组字段改为qE1.id,保证映射的键是目标实体ID
  • 统计关联数量用GroupBy.count(qE2.id),若用qE1.count()会统计qE1自身重复数,不符合需求
  • 使用leftJoin可保留无关联qE2的qE1实体,对应数量为0;若用join则会过滤这类实体,可根据业务需求选择
  • transform方法直接返回Map类型,无需传输完整实体对象

内容的提问来源于stack exchange,提问作者slider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 05:17:06