带Collection的EclipseLink NativeQuery IN参数

时间:2013-05-28 16:39:19

标签: jpa-2.0 eclipselink

我正在使用在GlassFish 2.1上运行的EclipseLink 2.4

我有一个NativeQuery:

String SQL = select distinct(ka.id) from KOLCSON ka where ka.fk_kuldo not in (?)

fk_kuldo外键具有VARCHAR类型

创建查询:

List<String> kuldokList = fedKuldoFacade.getKuldok();
Query q = em.createNativeQuery(SQL).setParameter(1, kuldokList);

getKuldok()方法返回ArrayList<String>

不幸的是,我得到一个例外,原因是:

Caused by: com.ibm.db2.jcc.a.SqlException: Invalid data conversion: 
 Parameter object type is invalid for requested conversion.

我是否遗漏了某些内容,或者无法将Collection参数设置为本机查询?

1 个答案:

答案 0 :(得分:1)

如果集合没有作为可序列化对象传递给驱动程序,则无法将集合传递给本机查询。您正在尝试的将需要驱动程序采取一个集合并将其分解,我不知道任何可以,并且提供程序不应该更改您传入的SQL。您将不得不为每个添加一个参数列表中的元素,或使用可以处理集合参数的JPQL