Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让JDBI映射自定义查询的结果_Java_Jdbi - Fatal编程技术网

Java 让JDBI映射自定义查询的结果

Java 让JDBI映射自定义查询的结果,java,jdbi,Java,Jdbi,我想做一个复杂的查询,让JDBI处理结果映射。通常,我会这样做: interface MyDao { @MapResultAsBean @SqlQuery("hardcoded query with :arg here") ResultDto query(@Bind("arg") String arg); } ResultDto result = dbi.open(MyDao.class).query(arg); 因为查询是在运行时生成的,所以我不能这样做,但我仍然希望使用结果集映射功

我想做一个复杂的查询,让JDBI处理结果映射。通常,我会这样做:

interface MyDao {
  @MapResultAsBean @SqlQuery("hardcoded query with :arg here")
  ResultDto query(@Bind("arg") String arg);
}
ResultDto result = dbi.open(MyDao.class).query(arg);
因为查询是在运行时生成的,所以我不能这样做,但我仍然希望使用结果集映射功能。我尝试过使用Handle界面:

String query = generateCustomQuery();
ResultDto result = dbi.open().createQuery(query).mapTo(ResultDto.class).first();

但是我没有看到传递
arg
的方法。我可以将其字符串concat到生成的查询中,但我更愿意像使用
PreparedStatement

一样传递它,我相信您希望使用它

dbi.open().createQuery(query).mapTo(ResultDto.class).bind(":arg", "value").first();