使用Cayenne绑定IN子句中的整数列表

时间:2009-02-05 04:17:12

标签: binding apache-cayenne

我正在尝试将整数列表绑定到SQLTemplate IN子句中,如下所示:

SELECT * FROM table1 WHERE id IN ( #bind($idList) );

我有一串ID:

idList = "1, 2, 3, 4";

我无法使绑定成功运行,当我将字符串作为要检查的ID列表传递时,它不返回任何值。

我不得不使用字符串连接来运行它(不理想)。

关于如何让它正确绑定的任何想法?

提前致谢。

(我正在使用Java / Cayenne / Postgres,并以传入的idList作为参数运行查询,这是一个简化的示例,而不是我正在运行的实际sql。) < / p>

更新我想出了如何做到这一点。回答如下。

1 个答案:

答案 0 :(得分:2)

好的,我在发布问题后立即知道该怎么做。

不使用字符串,而是使用如下所示的整数列表:

List<Integer> ids = {1,2,3,4,5} (pseudocode) 

要进行绑定,您需要以下内容:

SELECT * FROM table1 WHERE id IN ( #bind($idList, 'INTEGER') );

然后像往常一样传递参数,它会起作用。