我已经构建了一个类似于这样的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
我知道我可以只是构建一个字符串并从那里构建整个查询,但我想避免额外的开销。有没有更好的方法来做到这一点?
相关问题:如果列表非常大,是否有任何很好的方法来构建这样的查询?