JPQL查询的语法不正确。两种使用(带有位置参数):
List<Long> ids = Arrays.asList(380L, 382L, 386L);Query query = em.createQuery("FROM TrackedItem item WHERe item.id IN (?1)");query.setParameterList(1, ids)List<TrackedItem> items = query.getResultList();或(使用命名参数):
List<Long> ids = Arrays.asList(380L, 382L, 386L);Query query = em.createQuery("FROM TrackedItem item WHERe item.id IN :ids");query.setParameterList("ids", ids)List<TrackedItem> items = query.getResultList();以下是JPA 1.0规范中有关参数的相关部分:
4.6.4.1位置参数
以下规则适用于位置参数。
- 输入参数由问号(?)前缀指定,后跟一个整数。例如:
?1。- 输入参数从1开始编号。
请注意,同一参数可以在查询字符串中多次使用,并且查询字符串中参数的使用顺序不必与位置参数的顺序一致。4.6.4.2命名参数
命名参数是一个以“:”符号为前缀的标识符。它遵循第4.4.1节中定义的标识符规则。命名参数区分大小写。
例:
SELECt cFROM Customer cWHERe c.status = :stat第3.6.1节介绍了用于绑定命名查询参数的API



