1

我正在使用在 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 参数设置为本机查询?

4

1 回答 1

2

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

于 2013-05-30T15:56:08.560 回答