我建立了一个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
我知道我可以构建一个字符串并从中构建整个查询,但是我想避免开销。有更好的方法吗?
相关问题:如果列表很大,有什么好的方法来构建这样的查询?
这是stackoverflow.com/questions/1557085/…的副本,但是此线程提供了有用的答案。
—
Mike Ryan