パラメータ化されたクエリを次のように設定しようとしています。
SELECT field1 FROM myTable WHERE field2 IN (1,2,3,4)
私が使用しているデータベースはPostgresです。
このクエリはパラメータ化されていない状態で正常に実行されますが、JdbcTemplateでパラメータ化されたクエリを使用して、有効なfield2値(整数)のリストに入力したいと思います。
var( 、、、、、または)"1,2,3,4"のさまざまな値を試し"[1,2,3,4]"てみましたクエリのバリエーションを試しました:"{1,2,3,4}""(1,2,3,4)"
myJdbcTemplate.query("SELECT field1 FROM field2 IN (?)", new Object[]{ var })
と
myJdbcTemplate.query("SELECT field1 FROM field2 IN (?::integer[])", new Object[]{ var })
そしてまた
myJdbcTemplate.query("SELECT field1 FROM field2 IN ?::integer[]", new Object[]{ var })
ちなみに、クエリをパラメータ化する方法を説明するリソースも非常に役立ちます。
これらのクエリはすべて、演算子が失敗したこと、または型の不一致があることを示すPSQLExceptionsをスローします。これは、クエリをパラメータ化する方法がわからないため、合理的と思われます。