Saya telah membuat NamedQuery yang terlihat seperti ini:
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN (:inclList)")
Yang ingin saya lakukan adalah mengisi parameter: inclList dengan daftar item, bukan satu item. Misalnya jika saya punya new List<String>() { "a", "b", "c" }
bagaimana cara mendapatkannya di parameter: inclList? Ini hanya memungkinkan saya menyusun satu string. Sebagai contoh:
setParameter("inclList", "a") // works
setParameter("inclList", "a, b") // does not work
setParameter("inclList", "'a', 'b'") // does not work
setParameter("inclList", list) // throws an exception
Saya tahu saya bisa membuat string dan membangun seluruh Query dari situ, tapi saya ingin menghindari overhead. Apakah ada cara yang lebih baik untuk melakukan ini?
Pertanyaan terkait: jika List sangat besar, adakah cara yang baik untuk membuat kueri seperti itu?