Java 1.7 と JDBC 4 と Postgres を使用しています。配列で PreparedStatement を使用して、SQL in 句を埋めようとしています。しかし、生成されたSQLには「{」と「}」が含まれているようです。コードは次のとおりです。
PreparedStatement ptmt =
connection.prepareStatement("select * from foo where id in (?)");
String[] values = new String[3];
values[0] = "a";
values[1] = "b";
values[2] = "c";
ptmt.setArray(1, connection.createArrayOf("text", values));
結果の SQL は次のようになります。
select * from foo where id in ('{"a","b","c"}')
これは、うまくいきません。これはどのように見えるべきかです:
select * from foo where id in ("a","b","c")
また
select * from foo where id in ('a','b','c')
ここで何が欠けていますか?