Ho creato una NamedQuery simile a questa:
@NamedQuery(name = "EventLog.viewDatesInclude",
query = "SELECT el FROM EventLog el WHERE el.timeMark >= :dateFrom AND "
+ "el.timeMark <= :dateTo AND "
+ "el.name IN (:inclList)")
Quello che voglio fare è compilare il parametro: inclList con un elenco di elementi invece di un elemento. Ad esempio, se ho un new List<String>() { "a", "b", "c" }
come lo ottengo nel parametro: inclList? Mi consente di codificare solo una stringa. Per esempio:
setParameter("inclList", "a") // works
setParameter("inclList", "a, b") // does not work
setParameter("inclList", "'a', 'b'") // does not work
setParameter("inclList", list) // throws an exception
So che potrei semplicemente costruire una stringa e costruire l'intera Query da quella, ma volevo evitare il sovraccarico. C'è un modo migliore per farlo?
Domanda correlata: se l'elenco è molto grande, esiste un buon modo per creare query del genere?