您的位置:首页 > 其它

HQL中的Like查询需要注意的地方

2014-11-04 14:10 204 查看
public List getOrgan(String organCode, String organName) {
String hsql;
List list;

if (organCode != null && organCode.length() > 0) {
hsql = "from Ab31 where bae002 = ? and aab061 like ?";
list = getHibernateTemplate().find(hsql, new Object[] { organCode, '%' + organName + '%' });
}

else {
hsql = "from Ab31 where aab061 like ?";
list = getHibernateTemplate().find(hsql, '%' + organName + '%');
}

return list;
}

我在HQL中like查询的时候按照SQL语法用双引号组合 "%' "+ organName + "'%" 查不到任何结果,所以必须注意这里只能使用单引号,如:'%' + organName + '%' ,多个【占位符】用[b]new Object[] { organCode,organName } 来填充[/b]

like语法简介:

% 表示任意个数的任意字符

_ 表示任意一个字符

[abcdefg] 表示里面的字符任何一个,只取一个

[^c] 表示里面的字符不包含c

[a-z] 表示区间中的任一个,如c或d等

[^a-z] 表示非区间中的任一个

escape '/' 转义符,表示/之后的字符不是特殊字符。

like '%商品/%模板%' escape '/' 可以查出 商品%模板 特殊字符
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: