背景:
在使用過程中發現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("'","") + "%";
}
?
?
效果:
可以正常模糊匹配結果?