背景:
在使用过程中发现davinci 的控制器配置中, 取值配置的对应关系设置 包含 或 不包含时 不生效, 不能实现模糊匹配效果, 只能精确查询;
问题分析:
通过跟踪接口及相应代码, 发现在sql 拼接时没有对 like 和 not like 类型的值两侧添加百分号, 导致模糊查询失败
调用过程
解决办法:
在拼接sql 处 增加判断, 如果是like 或者 not like 时在值的两侧拼接 百分号
edp/davinci/core/model/SqlFilter.java #102
if(criterion.getOperator().equals("like") || criterion.getOperator().equals("not like")) {
value = "%" + criterion.getValue().toString().replace("'","") + "%";
}
效果:
可以正常模糊匹配结果