Как найти повторяющиеся строки в JPA - PullRequest
0 голосов
/ 28 сентября 2018

Есть ли способ найти повторяющиеся записи в наборе данных с использованием JPA?

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

Я хочу, чтобы в моем наборе были только записи 1 и 3.Я не могу сделать это уникальным в этой области.

-

DISTINCT даст мне строки 1 и 2.

Если это запрос, объединение с той же таблицей?Я не уверен, как это будет работать.Я не мог заставить группу работать.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Вы можете применить обычную практику из SQL в JPQL с помощью следующего запроса:

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

Подзапрос необходим, поэтому для эффективности вам потребуется индекс для столбца text.

0 голосов
/ 29 сентября 2018

Отредактировано Я считаю, что вы можете использовать следующий синтаксис без внутреннего запроса:

SELECT id, text, COUNT(*) FROM entity GROUP BY text HAVING COUNT(*) > 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...