Cannot bind String[] to ParameterExpression for path.in(parameter) ------------------------------------------------------------------
Key: OPENJPA-2018 URL: https://issues.apache.org/jira/browse/OPENJPA-2018 Project: OpenJPA Issue Type: Bug Components: jpa Affects Versions: 2.1.0 Reporter: Oliver Gierke Given the following code: {code} User user = new User("Dave", "Matthews", "f...@bar.de"); em.persist(user); em.flush(); CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<User> criteria = builder.createQuery(User.class); Root<User> root = criteria.from(User.class); criteria.where(root.get("firstname").in(builder.parameter(String[].class))); TypedQuery<User> query = em.createQuery(criteria); for (ParameterExpression parameter : criteria.getParameters()) { query.setParameter(parameter, new String[] {"Dave", "Carter"}); } List<User> result = query.getResultList(); assertThat(result.isEmpty(), is(false)); {code} I get a {code} <openjpa-2.0.0-r422266:935683 nonfatal user error> org.apache.openjpa.persistence.ArgumentException: The specified parameter of type "class [Ljava.lang.String;" is not a valid query parameter. {code} Using {{Collection}} as {{ParameterExpression}} type and binding the parameters via {{Arrays.asList(...)}} works fine. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira