【发布时间】:2012-09-29 00:01:17
【问题描述】:
在使用 openJPA 时,我可以将 List<Long> 作为 IN 参数吗?
我使用的数据库是 MySQL 最新版本。我正在尝试工作的示例查询如下,并且还粘贴了我得到的错误。请让我知道我需要做什么才能使其正常工作。
Select * from table t where c in (?)
.createNativeQuery(TOPIC)
.setParameter(1, listNo)
listNo 是 List<Long>。
错误
19:46:47,376 错误 [org.jboss.ejb3.invocation] (http--127.0.0.1-8080-6) JBAS014134:在方法公共抽象 com.zreflect.emyed.vo 的组件 TopicService 上的 EJB 调用失败。 circle.TopicVO[] com.zreflect.emyed.ejb.interfaces.ITopicService.getSelectedTopics(long,java.util.List,com.zreflect.emyed.vo.UserSession): javax.ejb.EJBException:
org.apache.openjpa.persistence.ArgumentException: 类型为“class java.util.ArrayList”的指定参数不是有效的查询参数。
【问题讨论】:
-
为什么是“本地”查询? JPQL 允许 IN 查询获取列表