2012-06-25 21 views
0

我不知道为什么有人会这样做(包括支持名称查询中的列表,但不支持本地命名查询(并且当我告诉你我相信时我们不可能把这个数组的所有位置值都放到本地查询中,它可能长达几百个单位!!!!!你将如何处理这个问题?这个?解决openJPA中对原生查询中列表的支持问题

+0

你能提供关于你遇到的问题的更多细节吗? – Rick

+0

没有别的真的要评论...我试图用in子句和ArrayList作为参数做一个NamedNativeQuery。但是,我得到一个异常告诉我,arrayList不是一个例外类型。想象一下我的惊愕,因为它是一个只有NamedQueries的例外类型。我目前正在经历各种各样的诡计,以完成同样的事情,我可以假设已经包括了简单的逻辑。 – SoftwareSavant

回答

1

你能传递一个List作为参数传递给正常的SQL语句?号

/** 
* Create an instance of Query for executing a native SQL statement, e.g., for update or delete. 
* @param sqlString a native SQL query string 
* @return the new query instance 
*/ 
public Query createNativeQuery(String sqlString); 

当您创建一个本地查询,JPA提供者会盲目地传递到SQL数据库并假定用户已经适当地格式化了SQL。

如果您想传递一个List作为查询参数,请使用JPQL。

+0

我实际上最终做的是编写一个nativeNamedQuery,并且如果'index%1000 = 0'(基本上如果是1000的因子),则用foreach循环和Or In子句构建In子句。 – SoftwareSavant