HQL中的Like查询需要注意的地方
转载自http://hi.baidu.com/gaogaf/blog/item/c21fbb128f85c6cec3fd78ec.html
例:
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 + '%' ,多个【占位符】用new Object[] { organCode, organName } 来填充