我正在使用查询生成器在休眠状态下创建查询语句。我需要为in语句传递arrayList。如何才能做到这一点。
虚拟代码:
List<String> xyz = new ArrayList<String>("sam","tam","vam");
StringBuilder queryBuilder = new StringBuilder("select abc from tem where xyz in :xyzList");
Query query = entityManager.createNativeQuery(queryBuilder.toString());
query.setParameter("xyzList", xyz);
query.getResultList();
这是行不通的。它引发异常。有人可以指出我该怎么做。
最佳答案
使用setParameterList("xyzList", new String []{"a","b","c"});
因此,如果您拥有列表,则可以使用list.toArray()
代替新的String []{"a","b","c"}