Şuna benzeyen bir NamedQuery oluşturdum:
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN (:inclList)")
Yapmak istediğim şey: inclList parametresini tek bir öğe yerine öğe listesiyle doldurmak. Örneğin, new List<String>() { "a", "b", "c" }
bunu: inclList parametresinde nasıl elde ederim? Sadece bir dizgeyi kodlamama izin veriyor. Örneğin:
setParameter("inclList", "a") // works
setParameter("inclList", "a, b") // does not work
setParameter("inclList", "'a', 'b'") // does not work
setParameter("inclList", list) // throws an exception
Sadece bir dizi oluşturabileceğimi ve tüm Sorguyu bundan oluşturabileceğimi biliyorum, ancak ek yükten kaçınmak istedim. Bunu yapmanın daha iyi bir yolu var mı?
İlgili soru: Liste çok büyükse, böyle bir sorgu oluşturmanın iyi bir yolu var mı?