0
我想創建一個查詢,可以根據人名或人名用戶名的通配符搜索來搜索人名。Hibernate命名查詢(HQL)搜索關鍵詞
我想創建一個查詢,可以根據人名或人名用戶名的通配符搜索來搜索人名。Hibernate命名查詢(HQL)搜索關鍵詞
我其實很困惑。你說你實體類被命名爲PersonEntity.java,但你的HQL查詢從Operson中選擇。
在HQL中,您將針對Java對象而不是實際的表進行查詢。無論如何,我會假設你的實體被命名爲Operson。下面是正確的代碼:
public List<Operson> searchPerson(String keyword) {
try {
String HQL = "SELECT o FROM Operson o WHERE o.opusername like :username OR o.opname like :name";
return em.createQuery(HQL)
.setParameter("username", "%" + keyword.toUpperCase() + "%")
.setParameter("name", "%" + keyword.toUpperCase() + "%")
.getResultList();
} catch(Exception e) {
e.printStackTrace();
}
}
注:
嗨,我已經把錯誤的名稱應該是OPerson.java而不是PersonEntity.java。我已經做出了改變。如果我想要查詢,該怎麼辦:public List searchPerson(String keyword){}。我應該怎麼做? –
susu
你在查詢中有2個參數,所以我認爲你應該在你的方法中需要2個參數。你想用關鍵字參數做什麼?將相同的關鍵字傳遞給您的查詢中的用戶名和用戶參數? – Ish
是的。關鍵字use在我的查詢中傳遞給用戶名和用戶參數。那是我混淆的事情。我知道當傳遞2個參數時,我應該把2個參數放在我的方法中。如果我使用關鍵字傳遞2個參數(用戶名和名稱)會怎麼樣? – susu