hql語句一次比對查詢單表中多個字段
阿新 • • 發佈:2018-06-12
end nta 不能 ase color poll 存儲 pen ike +"%‘)");
whereBlock.append(" or (crmCstmContact.docMain.docNumber like ‘%"+fdCustomerName+"%‘))");
}
前端輸入客戶名稱,在使用hql查詢時,要同時比對表中,客戶名稱,客戶簡稱,拼音簡寫,客戶編碼等多個字段
hql寫法
String fdCustomerName=cv.poll("docMain.fdCustomerName");
if(fdCustomerName!=null){
whereBlock.append(" and ((crmCstmContact.docMain.fdCustomerName like ‘%"+fdCustomerName+"%‘)");
whereBlock.append(" or (crmCstmContact.docMain.fdNamePinyin like ‘%"+fdCustomerName.toUpperCase()
whereBlock.append(" or (crmCstmContact.docMain.docNumber like ‘%"+fdCustomerName+"%‘))");
}
控制臺打印出語句為
1 = 1 and ((crmCstmContact.docMain.fdCustomerName like ‘%ts%‘) or (crmCstmContact.docMain.fdNamePinyin like ‘%TS%‘) or (crmCstmContact.docMain.docNumber like ‘%ts%‘))
註意:
and優先級大於or,所以優先級相同時要使用()括起來
數據庫中存儲大寫拼音簡碼時,,填寫查詢語句時要把字符串轉換大寫格式,否則不能成功匹配
hql語句一次比對查詢單表中多個字段