2017-03-09 16 views
1

私はプロジェクトにJDBI/Dropwizardを使用しており、簡単なクエリを実行したいと考えています。JDBIでIN句の文字列のリストを使用

private static final String GET_STUFF = "SELECT * FROM myTable WHERE state IN (:desiredState)"

私はそうのように私の方法で変数をバインドします:実行している場合

は、しかし、私は次のエラーを取得する:私は、クエリとても似てい

org.skife.jdbi.v2.exceptions.UnableToCreateStatementException: 
Exception while binding 'desiredState'.... 
Caused by: org.postgresql.util.PSQLException: Can't infer the SQL type to use for an instance of java.util.ArrayList. Use setObject() with an explicit Types value to specify the type to use. 

私はstatesをString型のArrayListとして渡しているので、ここでは何が起こっているのかちょっと混乱しています。誰でもJDBIでInを行う正しい方法を知っていますか?

+0

と書く必要があります。[Jdbi - Javaでリストパラメータをバインドする方法は?](http://stackoverflow.com/questions/32526233/jdbi-how-to-bind-a -list-parameter-in-java) – pozs

答えて

2

@Bindの代わりに注釈@BindInを使用してください。 また、:desiredState<desiredState>

+0

''は、ありがとう! –

関連する問題