java - Register Optional for JDBI -
i got no container builder available com.google.common.base.optional
error.
here fuller stack trace:
java.lang.illegalstateexception: no container builder available com.google.common.base.optional @ org.skife.jdbi.v2.containerfactoryregistry.createbuilderfor(containerfactoryregistry.java:75) @ org.skife.jdbi.v2.query.first(query.java:271) @ org.skife.jdbi.v2.sqlobject.resultreturnthing$singlevalueresultreturnthing.result(resultreturnthing.java:112) @ org.skife.jdbi.v2.sqlobject.resultreturnthing.map(resultreturnthing.java:48) @ org.skife.jdbi.v2.sqlobject.queryhandler.invoke(queryhandler.java:45) @ org.skife.jdbi.v2.sqlobject.sqlobject.invoke(sqlobject.java:175) @ org.skife.jdbi.v2.sqlobject.sqlobject$1.intercept(sqlobject.java:75) @ org.skife.jdbi.v2.sqlobject.closeinternaldonotusethisclass$$enhancerbycglib$$b270edb1.select(<generated>)
i have dao interface this:
import com.google.common.base.optional; public interface mydao { @sqlquery("something") optional<data> select(); }
here data access layer unit test:
public class mydaotest { @test public void shouldselect() { dbi dbi = new dbi("jdbc:(something)", "something", "something"); mydao mydao = dbi.ondemand(mydao.class); optional<data> data = mydao.select(); assertfalse(data.absent()); } }
register io.dropwizard.jdbi.optionalcontainerfactory
if using com.google.common.base.optional
, error no container builder available com.google.common.base.optional
.
register io.dropwizard.java8.jdbi.optionalcontainerfactory
if using java.util.optional
, error no container builder available java.util.optional
.
i followed instructions here:
public class mydaotest { @test public void shouldselect() { dbi dbi = new dbi("jdbc:(something)", "something", "something"); dbi.registercontainerfactory(new optionalcontainerfactory()); ... }
Comments
Post a Comment