JPQL-объекты по переданным идентификаторам в предложении IN - PullRequest
1 голос
/ 19 сентября 2019

возможно упорядочить объекты по идентификаторам, которые я передаю в качестве параметра в предложение IN с хранилищем данных пружины?

Для экземпляра:

SELECT e FROM Employee WHERE e.id IN (:employeeIds);

и employeeIds = {1,2,3,4,5}

и мой список с результатом из JPARepository будет сущностями в том же порядке:

Employee={id:1, ...}, Employee={id:2, ...}, Employee={id:3, ...}

1 Ответ

0 голосов
/ 19 сентября 2019

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

select e
from (values (1), (2), (3), ...) as t(id)
inner join employee e on t.id = e.id;

Это можно оценить как собственный запрос:

entityManager.createNativeQuery(
    "select e " +
    "from (values (1), (2), (3), ...) as t(id) " +
    "inner join employee e on t.id = e.id", Employee.class)
    .gerResultList();

Но, как вы видите, вам придется самостоятельно составлять запрос или передавать довольно много параметров (возможно, в цикле).

...