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