jpa 2.0: как сделать sql минус коллекции с таблицей - PullRequest
0 голосов
/ 04 января 2012

Я ищу выражение JPQL или Критерии, чтобы найти подмножество целых чисел (кодов) в моей коллекции, которых нет в таблице.

Собственный запрос для базы данных Oracle будет:

SELECT column_value
FROM Table (: listOfCodes)
MINUS
SELECT code
FROM table1;

Это похоже на сообщение здесь, но не совсем то, чтоя хочу jpa 2.0 критерий API-выражение для SQL минус

Любые указатели / помощь будет принята с благодарностью.

1 Ответ

1 голос
/ 04 января 2012

Вы можете просто запросить значения в таблице и в вашем наборе, а затем взять дополнение к тому, что возвращает запрос:

List<Integer> valuesInTheTable = 
    (List<Integer>) em.createQuery("select a.column from Entity a where a in (:values)")
                      .setParameter("values", values)
                      .getResultList();

Set<Integer> valuesNotInTheTable = new HashSet<Integer>(values);
valuesNotInTheTable.removeAll(valuesInTheTable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...