
本文介绍如何在 Spring Data JPA 分页查询返回的 Object[] 结果集中,基于 tid 字段实现内存级去重,确保每个 tid 仅保留一条记录,并给出线程安全、可维护的实现方案。
本文介绍如何在 spring data jpa 分页查询返回的 `object[]` 结果集中,基于 `tid` 字段实现内存级去重,确保每个 `tid` 仅保留一条记录,并给出线程安全、可维护的实现方案。
在使用 Page 接收多表关联查询结果(如 onetable 和 twotable)时,数据库原始结果常因 JOIN 导致同一 tid 出现多次。由于 SQL 层面难以直接 DISTINCT ON (tid)(尤其在 H2/MySQL 等不支持该语法的数据库中),推荐在 Java 层进行高效、可控的逻辑去重。
核心思路是:利用 Set 缓存已处理的 tid 值,借助 Set.add() 方法的返回值(true 表示新增成功、即首次出现)判断唯一性。以下是优化后的完整实现:
ConcurrentHashMap.newKeySet()
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











