Hi,
what is the correct syntax for IN operator when list of literals ia used instead of parameter, e.g.
SELECT FROM Info i WHERE i.status IN (1,4) ?
(Suppose status is int.)
I always get this exception:
SELECT FROM Info i WHERE i.status IN (1 ==> , <== 4)
javax.persistence.PersistenceException
Unexpected query token ',' (closing ')' is missing) (error 752)
Query with only one item in list works fine:
SELECT FROM Info i WHERE i.status IN (1)
The same behavior is when using MEMBER OF operator.
Thanks.
Marta
package test; import java.util.*; import javax.persistence.*; public final class MyTestCase { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory( "objectdb:$objectdb/db/test.tmp;drop"); EntityManager em = emf.createEntityManager(); em.getTransaction().begin(); MyEntity e = new MyEntity(1); em.persist(e); em.getTransaction().commit(); Query query = em.createQuery("SELECT FROM MyEntity e WHERE e.num IN (4,5)"); List resultList = query.getResultList(); System.out.println(resultList); em.close(); emf.close(); } @Entity public static class MyEntity { private int num; MyEntity(int num) { this.num=num; } @Override public String toString() { return ""+num; } } }