方法:
hql.append(" and icon like :icon escape '~' ");
parameters.put("icon", this.getLikeKeyworkdLike12(icon));
/**
* like12 add,20190417,解決hql查詢條件 不能帶下劃線'_'的問題
* (需配合“escape '~'”使用)
* @param keyword
* @return
*/
public String getLikeKeyworkdLike12(String keyword) {
keyword = keyword.replace("_", "~_");
return "%" + keyword + "%";
}
原因:
簡單的說,要把待查詢的字符串裏面的_和%替換爲\_和\%
還有一種寫法,如 select * from user where name like '%/%%' escape '/'