gpt4 book ai didi

java - `SqlProvider` 如何在 `MyBatis` 中获取超过 1 个参数?

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:10 25 4
gpt4 key购买 nike

当我尝试使用SqlProvider时我遇到了异常 org.apache.ibatis.reflection.ReflectionException (说“There is no getter for property named 'providerTakesParameterObject' in 'class org.apache.ibatis.builder.annotation.ProviderSqlSource'”)。我用谷歌搜索了一下,似乎有SqlProvider不能接受多个参数。这是演示代码:

MyTableMapper.java

public interface MyTableMapper{
@SelectProvider(type=MyTableSqlProvider.class, method="selectSelective")
List<MyTable> selectSelective(Date from, Date to, String searchkey);
}

MyTableSqlProvider.java

public class MyTableSqlProvider{
public String selectSelective(Date from, Date to, String name) {
return new SQL() {{
SELECT("*");
FROM("MyTable");
if(from!=null){
WHERE("createtime >= {#from,jdbcType=TIMESTAMP}");
}
if(to!=null){
WHERE("createtime <= {#to,jdbcType=TIMESTAMP}");
}
if(!StringUtils.isBlank(name)){
WHERE("title like %{#name,jdbcType=VARCHAR}%");
}
}}.toString();
}
}

上面的代码无法运行。但我怎样才能让它接受所有参数呢?

最佳答案

终于找到原因了。这不是 MyBatis 的错误。我用了一个插件Mybatis-PageHelper 。旧版本插件不支持MyBatis 3.4.0。我更新了插件,现在是正确的。

关于java - `SqlProvider` 如何在 `MyBatis` 中获取超过 1 个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37744893/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com