views:

211

answers:

0

I'm on a project using EclipseLink 1.1, and I have a query where the obvious thing for me to do is use a Where-In clause, like so:


      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);

This is, of course, a batch of fresh-brewed FAIL and at runtime will whine at me like this:

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 ....

Googling around indicates that EclipseLink 1.1 simply doesn't support dumping a list into a parameter like this; fair enough. How would people recommend working around this deficiency?