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 } 來填充
like語法簡介:
% 表示任意個數的任意字符
_ 表示任意一個字符
[abcdefg] 表示裏面的字符任何一個,只取一個
[^c] 表示裏面的字符不包含c
[a-z] 表示區間中的任一個,如c或d等
[^a-z] 表示非區間中的任一個
escape '/' 轉義符,表示/之後的字符不是特殊字符。
like '%商品/%模板%' escape '/' 可以查出 商品%模板 特殊字符