Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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测试自定义注释以生成sql语句_Java_Jdbi - Fatal编程技术网

Java JDBI测试自定义注释以生成sql语句

Java JDBI测试自定义注释以生成sql语句,java,jdbi,Java,Jdbi,我希望在jdbi包中测试一个定制的SqlStatementCustomingAnnotation注释 我有下面的单元测试,但是我看到返回的“customizer”对象是一个lambda。如何断言我希望在自定义注释中生成的SQL是我所期望的。如何将“customizer”对象转换为sql语句,或在“customizer”对象中检查和断言sql SourceEventTimeCustomizerTest @Test public void testSourceModifiedQuery(){

我希望在jdbi包中测试一个定制的SqlStatementCustomingAnnotation注释

我有下面的单元测试,但是我看到返回的“customizer”对象是一个lambda。如何断言我希望在自定义注释中生成的SQL是我所期望的。如何将“customizer”对象转换为sql语句,或在“customizer”对象中检查和断言sql

SourceEventTimeCustomizerTest

 @Test
 public void testSourceModifiedQuery(){
        SourceModifiedQuery.SourceEventDateTimeCustomizer srcModifiedQuery = new SourceModifiedQuery.SourceEventDateTimeCustomizer();

        Annotation annotation = buildSourceModifiedQueryAnnotation();

        List<Query> queries = new ArrayList<Query>();
        queries.add(QueryHelper.createQuery("source_modified_date_time" , Query.Operator.EQ, "2018-01-01"));

        SqlStatementCustomizer customizer = srcModifiedQuery.createForParameter(annotation, DealDao.class, null, queries );
        assertNotNull(customizer);

    }
@测试
public void testSourceModifiedQuery(){
SourceModifiedQuery.SourceEventDateTimeCustomizer srcModifiedQuery=新建SourceModifiedQuery.SourceEventDateTimeCustomizer();
Annotation=buildSourceModifiedQueryAnnotation();
列表查询=新建ArrayList();
querys.add(queryhelp.createQuery(“source\u modified\u date\u time”,Query.Operator.EQ,“2018-01-01”);
SqlStatementCustomizer customizer=srcModifiedQuery.createForParameter(注释,DealDao.class,null,查询);
assertNotNull(定制器);
}
SourceEventTimeCustomizer

  @Override
        public SqlStatementCustomizer createForParameter(final Annotation annotation, final Class sqlObjectType,
                final Method method, final Object arg) {
            final List<Query> queries = (List<Query>) arg;
            final SourceModifiedQuery sourceModifiedQuery = (SourceModifiedQuery) annotation;

            final String actualQuery = genQuery(queries, sourceModifiedQuery);
            return sqlStatement -> sqlStatement.define(sourceModifiedQuery.value(), actualQuery);
        }
@覆盖
公共SqlStatementCustomizer createForParameter(最终注释,最终类sqlObjectType,
最终方法,最终对象参数){
最终列表查询=(列表)参数;
最终SourceModifiedQuery SourceModifiedQuery=(SourceModifiedQuery)注释;
最终字符串actualQuery=genQuery(查询,sourceModifiedQuery);
返回sqlStatement->sqlStatement.define(sourceModifiedQuery.value(),actualQuery);
}