SqlProvider
을 사용할 때 org.apache.ibatis.reflection.ReflectionException
("There is no getter for property named 'providerTakesParameterObject' in 'class org.apache.ibatis.builder.annotation.ProviderSqlSource'
") 예외가 발생했습니다. 나는 그것을 봤 거든 SqlProvider
하나 이상의 인수를 취할 수없는 것 같습니다.`SqlProvider`는`MyBatis`에서 둘 이상의 매개 변수를 가져올 수 있습니까?
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();
}
}
코드 위에서 실행할 수 없습니다 : 여기에 데모 코드입니다. 하지만 어떻게 모든 문제를 해결할 수 있습니까?