Добавление списка предложений IN в запрос JPA

Я создал NamedQuery, который выглядит следующим образом:

@NamedQuery(name = "EventLog.viewDatesInclude",
        query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
        + "el.timeMark <= :dateTo AND "
        + "el.name IN (:inclList)")

What I нужно заполнить параметр: inclList списком элементов вместо одного элемента. Например, если у меня есть new List () {"a", "b", "c"} как мне получить это в параметре: inclList? Это позволяет мне только codif у одной строки. Например:

setParameter("inclList", "a") // works

setParameter("inclList", "a, b") // does not work

setParameter("inclList", "'a', 'b'") // does not work

setParameter("inclList", list) // throws an exception

Я знаю, что могу просто построить строку и построить из нее весь запрос, но я хотел избежать накладных расходов. Есть ли лучший способ сделать это?

Связанный вопрос: если список очень большой, есть ли какой-нибудь хороший способ построить подобный запрос?

116
задан Manuel Drieschmanns 7 November 2017 в 13:04
поделиться