jDBI クエリでオプションの (null) パラメータを使用することは可能ですか? データベース クエリで動作するオプションのパラメータを取得しようとしています。私はドロップウィザードで作業しています。
@SqlQuery("SELECT * \n" +
"FROM posts \n" +
"WHERE (:authorId IS NULL OR :authorId = author_id)")
public List<Post> findAll(@Bind("authorId") Optional<Long> authorId);
authorId が渡されるとクエリは機能しますが、NULL の場合は次のエラーが発生します。
org.postgresql.util.PSQLException: ERROR: could not determine data type of parameter $1
これは、私が呼び出しているリソース ルートです。
@GET
public ArrayList<Post> getPosts(@QueryParam("authorId") Long authorId)
{
return (ArrayList<Post>)postDao.findAll(Optional.fromNullable(authorId));
}
私が読んだことから、これは可能であるため、何かが欠けているか、明らかな間違いがあると推測しています。どんな助けでも大歓迎です!
参考までに-guava Optional(dropwizardでサポートされています)なしでも試しました-authorIdをnullのLongとして送信するだけです。これは、null でない限り機能します。