use*_*679 2 java dao jdbc guava jdbi
我收到了一个No container builder available for com.google.common.base.Optional错误.
这是一个更全面的堆栈跟踪:
java.lang.IllegalStateException: No container builder available for com.google.common.base.Optional
at org.skife.jdbi.v2.ContainerFactoryRegistry.createBuilderFor(ContainerFactoryRegistry.java:75)
at org.skife.jdbi.v2.Query.first(Query.java:271)
at org.skife.jdbi.v2.sqlobject.ResultReturnThing$SingleValueResultReturnThing.result(ResultReturnThing.java:112)
at org.skife.jdbi.v2.sqlobject.ResultReturnThing.map(ResultReturnThing.java:48)
at org.skife.jdbi.v2.sqlobject.QueryHandler.invoke(QueryHandler.java:45)
at org.skife.jdbi.v2.sqlobject.SqlObject.invoke(SqlObject.java:175)
at org.skife.jdbi.v2.sqlobject.SqlObject$1.intercept(SqlObject.java:75)
at org.skife.jdbi.v2.sqlobject.CloseInternalDoNotUseThisClass$$EnhancerByCGLIB$$b270edb1.select(<generated>)
Run Code Online (Sandbox Code Playgroud)
我有一个DAO,其界面如下:
import com.google.common.base.Optional;
public interface MyDAO {
@SqlQuery("something")
Optional<Data> select();
}
Run Code Online (Sandbox Code Playgroud)
这是我的数据访问层单元测试:
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());
}
}
Run Code Online (Sandbox Code Playgroud)
io.dropwizard.jdbi.OptionalContainerFactory如果您正在使用com.google.common.base.Optional并注册错误,请注册No container builder available for com.google.common.base.Optional.
io.dropwizard.java8.jdbi.OptionalContainerFactory如果您正在使用java.util.Optional并注册错误,请注册No container builder available for java.util.Optional.
我按照这里的说明操作:
public class MyDAOTest {
@Test
public void shouldSelect() {
DBI dbi = new DBI("jdbc:(something)", "something", "something");
dbi.registerContainerFactory(new OptionalContainerFactory());
...
}
Run Code Online (Sandbox Code Playgroud)
小智 5
确保您在测试代码中创建一个新的io.dropwizard.java8.jdbi.DBIFactory,而不是。io.dropwizard.jdbi.DBIFactory不幸的是,它们具有相同的名称,并且(根据我的经验)很容易在导入中错过。
| 归档时间: |
|
| 查看次数: |
2816 次 |
| 最近记录: |