У меня есть список из двух параметров (я получил его с подзапросом)
LocalDate date, Long id
LocalDate date, Long id
...
LocalDate date, Long id
Я хочу вызвать запрос для получения объектов, где каждая строка проверяется на наличие двух условий:
- id из моего списка параметров
- для каждого идентификатора, взятого из списка параметров, дата должна быть после той, которая указана в списке параметров
ГДЕ IN здесь не применимо.
В SQL я бы попробовал с предложением JOIN, но в JPQL я не могу присоединиться к подзапросу. Как это сделать с помощью JPQL?
пример:
параметры из подзапроса
2018/01/10 1
2018/01/20 2
Данные таблицы объектов Chron
2018/01/09 1
2018/01/15 1
2018/01/25 1
2018/01/15 2
2018/01/25 2
2018/01/25 3
запрос должен возвращать объекты Chron
2018/01/15 1
2018/01/25 1
2018/01/25 2
Мне удалось создать аналогичный запрос, но он принимает только один идентификатор и дату в качестве параметра, вызывает подзапрос, чтобы получить только одну дату, а мне нужно предоставить список идентификаторов в качестве входных данных:
SELECT oc
FROM OutletChron oc
WHERE
oc.outletId = :outletId AND
oc.start >= (COALESCE(
(SELECT MAX(ocInner.start)
FROM OutletChron ocInner
WHERE
ocInner.outletId = :outletId AND
ocInner.start <= :from), :from))
ORDER BY oc.start