hibernate里面,查询的时候[code="java"]query.setString(entry.getKey(),tempV);[/code]如果tempV中含有百分号怎么处理的?比如tempV="abc%",我要找的是 like 所有包含了abc%的记录,而事实上查找的是like 'abc%'的记录。我该怎么办呢?源代码如下:[code="java"]queryStr.append(" and name like '%'||:name||'%' ");
props.put("name", securityExpert.getName());[/code]
dao方法处理:
[code="java"]query.setString(entry.getKey(),tempV);[/code]
或者
[code="java"]queryStr.append(" and name like :name ");
props.put("name", "%"+securityExpert.getName()+"%");[/code]。
通过转义符实现:
like '%ab/%cd%' escape '/' 可以查出 ab%cd
[code="sql"]
and name like '%'||:name||'%' /% escape '/'
and name like :name /% escape '/'
[/code]
[code="java"]LIKE '5[%]%'[/code]
so easy!
LIKE '5\%%'
LIKE '5[%]%' 这个绝对是可以的,你可以参看like用法。但是我没有在hibernate中使用过。不知道支持不支持。