PostgreSQL&使用`setArray`的JDBC设置整数数组抛出异常“无法将整数[]类型转换为整数”

时间:2018-04-29 07:39:34

标签: java sql postgresql jdbc prepared-statement

如何在JDBC中设置一个整数数组(带有setArray的预处理语句用于in子句?

String query = "SELECT * FROM table WHERE id IN (?)";
// other things.
// ArrayList<Integer> some_ids;
preparedStatement.setArray(1, conn.createArrayOf("INTEGER", some_ids.toArray()));

它编译,但执行从Postgres返回。

ERROR: cannot cast type integer[] to integer

1 个答案:

答案 0 :(得分:4)

在PostgreSQL中你必须使用= ANY(?)而不是IN (?)

"SELECT * FROM table WHERE id = ANY(?)";

看看这个:9.21.3. ANY/SOME (array)