1. 程式人生 > >hql語句一次比對查詢單表中多個字段

hql語句一次比對查詢單表中多個字段

end nta 不能 ase color poll 存儲 pen ike

前端輸入客戶名稱,在使用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語句一次比對查詢單表中多個字段