Я створив NamedQuery, який виглядає приблизно так:
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN (:inclList)")
Що я хочу зробити, це заповнити параметр: inclList зі списком елементів замість одного елемента. Наприклад, якщо у мене є, new List<String>() { "a", "b", "c" }
як я можу це отримати в параметрі: inclList? Це дозволяє мені кодувати лише один рядок. Наприклад:
setParameter("inclList", "a") // works
setParameter("inclList", "a, b") // does not work
setParameter("inclList", "'a', 'b'") // does not work
setParameter("inclList", list) // throws an exception
Я знаю, що міг би просто побудувати рядок і створити з цього весь Запит, але хотів уникнути накладних витрат. Чи є кращий спосіб зробити це?
Пов’язане запитання: якщо Список дуже великий, чи існує якийсь хороший спосіб побудови запиту?