如何在JPA中查找重复的行

时间:2018-09-28 16:28:17

标签: jpa spring-data-jpa

是否可以使用JPA在数据集中查找重复的条目?

| id | text |
-------------
| 1  | foo  |
| 2  | bar  |
| 3  | foo  |

我只希望集合中有条目1和3。 在这个领域,我无法做到独一无二。

DISTINCT将给我第1行和第2行。

如果是查询,是否具有相同的表联接?我不确定如何运作。我无法按功能分组。

2 个答案:

答案 0 :(得分:2)

已编辑 我相信您可以使用以下语法而无需内部查询:

SELECT id, text, COUNT(*) FROM entity GROUP BY text HAVING COUNT(*) > 1

答案 1 :(得分:1)

您可以通过以下查询将SQL的常规做法应用于JPQL:

SELECT e FROM Entity e WHERE e.text IN (SELECT text FROM Entity d GROUP BY text HAVING COUNT(*)>1

需要一个子查询,因此您需要在text列上创建索引才能有效。