Hibernate模糊查詢參數(shù)化的問題
造成Hibernate模糊查詢參數(shù)化的問題的根本原因還是對(duì)hibernate的使用不太了解,改成這樣就沒錯(cuò)了:from Project o where 1=1 and o.isDeleted=? and o.prjName like ?; query.setString(i, "%"+實(shí)際查詢條件+"%"); 注意參數(shù)中***個(gè)百分號(hào)的左邊與第二個(gè)百分號(hào)的右邊都沒有單引號(hào),這和平時(shí)寫SQL語句是不同的,要特別關(guān)注一下。另外還應(yīng)該了解一下倆點(diǎn)的區(qū)別
HQL:from Project o where 1=1 and PRJ_NAME like '%strCond%';//這里PRJ_NAME 應(yīng)該是數(shù)據(jù)庫表中的實(shí)際字段名
HQL:from Project o where 1=1 and o.PRJ_NAME like '%strCond%';//這里PRJ_NAME 應(yīng)該是實(shí)體類的屬性名
HQL:from Project o where 1=1 and PRJ_NAME like '?';//這里的?不視為占位參數(shù)HQL:from Project o where 1=1 and PRJ_NAME like ?;//設(shè)置參數(shù)值時(shí)會(huì)自動(dòng)在參數(shù)值兩邊加上單引號(hào)。
【編輯推薦】