我正在使用EclipseLink 1.1进行项目,我有一个查询,其中我要做的显而易见的事情是使用Where-In子句,如下所示:
List<String> things = populateListOfThings();
String queryString = " select s from Stuff s where s.thing in (:things) ";
Query query = em.createQuery(queryString);
query.setParameter("things", things);
当然,这是一批新鲜的FAIL,并且在运行时会像这样抱怨我:
java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.ArrayList for parameter things with expected type of class java.lang.String from query string ....
谷歌搜索表明EclipseLink 1.1不支持将列表转储到这样的参数中;很公平。人们会如何推荐解决这个问题?