67,549
社区成员




jpa的in查询不能用数组或集合,只能一个一个参数的设置,用这个来解决挺好的 list 查询条件的参数集合; org.apache.commons.lang.StringUtils; StringBuffer jpql = new StringBuffer( "SELECT o FROM xx as o WHERE o.xx IN ("); jpql.append( StringUtils.repeat(" ? ", ",", listSize)); jpql.append(") "); Object[] queryParams= list.toArray(); Query query = entityManager.createQuery(jpql.toString); if (queryParams != null && queryParams.length > 0) { for (int i = 0; i < queryParams.length; i++) { query.setParameter(i + 1, queryParams[i]); } } return query.getResultList();