2016-10-14 25 views
1

JDBIを初めて使用しています。私は、 "Select * from tableName where id=?"のようなクエリでDAOに注釈を付ける簡単な例をいくつか見てきました。JDBIを使用した複雑なSQL検索クエリの作成

パラメータの動的リストで検索するなど、より複雑なクエリのドキュメントを誰かに教えてもらえますか?たとえば、ユーザーは名前、年齢、ID、高さなどで検索できますが、実行時までこれらの検索パラメータの組み合わせが自分の検索方法に含まれる可能性があります。私は年齢の検索値を取得しない可能性があり、検索クエリに何もバインドする必要はありません。

任意のポインタは、感謝 〜キム

私は動的な検索を行うので見た中で最も簡単な方法は、右のクエリで、各検索条件を置くことです

答えて

1

class MyParameters { 
    UUID id; 
    String name; 
    OffsetDateTime createdAfter; 
    // ... more parameters 
    // (getters and setters elided) 
} 

interface MyDao { 
    @SqlQuery("select * from tableName " 
     + "where (:id is null or id = :id) " 
     + "and (:name is null or name ilike (:name || '%')) " 
     + "and (:createdAfter is null or created_on >= :createdAfter) " 
     // etc 
) 
    List<MyObject> listMyObjects(@BindBean MyParameters parameters); 
} 
関連する問題