java - Optional jDBI parameter -



java - Optional jDBI parameter -

is possible have optional (null) parameters jdbi queries? i'm attempting optional parameters working in database query. working dropwizard.

@sqlquery("select * \n" + "from posts \n" + "where (:authorid null or :authorid = author_id)") public list<post> findall(@bind("authorid") optional<long> authorid);

the query works when authorid passed, gives me error when null:

org.postgresql.util.psqlexception: error: not determine info type of parameter $1

this resource route calling from:

@get public arraylist<post> getposts(@queryparam("authorid") long authorid) { homecoming (arraylist<post>)postdao.findall(optional.fromnullable(authorid)); }

from i've read, possible do, i'm guessing missing or have obvious mistake. help appreciated!

fyi - have tried without guava optional (which supported dropwizard) -- sending authorid long null. works long it's not null.

you need utilize java8 version of dbifactory on application class. provides java 8 optional back upwards joda localdatetime.

gradle dependency: (convert maven, if you're using maven)

compile 'io.dropwizard.modules:dropwizard-java8-jdbi:0.7.1'

and create sure import io.dropwizard.java8.jdbi.dbifactory on applicaiton class , utilize under run.

public void run(t configuration, environment environment) throws exception { final dbifactory mill = new dbifactory(); final dbi jdbi = factory.build(environment, configuration.getdatabase(), "database"); ... ... }

java dropwizard jdbi

Comments

Popular posts from this blog

Delphi change the assembly code of a running process -

json - Hibernate and Jackson (java.lang.IllegalStateException: Cannot call sendError() after the response has been committed) -

C++ 11 "class" keyword -