hibernate多關鍵字模糊搜尋方法

2021-09-19 13:40:40 字數 1376 閱讀 8734

1,與sql類似hql中也有左右連線和交叉連線,效果功能類似只是用法有稍微的差別,hql中不用on關鍵字,而是直接right join之前級聯的物件即可,如下:

其中person與contact為一對多的關係,即乙個人有多個****的內容。再contact中有屬性person

hql右連查詢,以右邊的為準查出結果,

string hql=" from contact contact right join contact.person person where 1=1 ";
hql左連查詢,以左邊的為準查結果,

string hql=" from contact contact left join contact.person person where 1=1 ";
hql交叉連線,比較適合一對一的關係,如果是一對多當多的一方沒有的話一的也查不出,比如如果某個人沒有****,那麼在搜素的時候查不到這個人員。此種方式查詢速度比較慢

string hql=" from person person,contact contact where person=contact.person ";
2,這裡是為了搜尋出符合條件的人員資訊,用右關聯;查詢關鍵字param,不同的關鍵字之間用空格隔開,attribute陣列裡面存放需要用來匹配的屬性名稱

string hql=" from contact contact right join contact.person person where 1=1 ";

log.info("param="+param);

stringbuffer buffer=new stringbuffer();

if(null!=param&&!"".equals(param));

string strs=param.trim().split(" ");

for(int i=0;i0)

}string totalhq="select count(*) "+hql;

long total=(long) getsession().createquery(totalhq).uniqueresult();//查詢總條數

query query= getsession().createquery("select person "+hql);

list list=query.setfirstresult((page-1)*rows.intvalue()).setmaxresults(rows.intvalue()).list(); //分頁查詢

pagedata.settotal(total);

pagedata.setrows(list);

MySQL單錶多關鍵字模糊查詢的實現方法

在最近的乙個專案需要實現在mysql單錶多關鍵字模糊查詢,但這數個關鍵字並不一定都存在於某個字段。例如現有tablbhqztqkpzre表,其中有title,tag,des程式設計客棧cription三個字段,分別記錄一條資料的bhqztqkpzr標題,標籤和介紹。然後根據使用者輸入的查詢請求,將輸...

MySQL多關鍵字多欄位模糊查詢

假設有這樣兩條資料 表名為user 1 username admin,password 000000 2 username admin,password 123456 我們要實現的效果是可以輸入多個關鍵字查詢,多個關鍵字間以逗號分隔。使用上述表舉例 輸入單個關鍵字 admin 可查出這兩條資料,輸入...

rabbmitMQ 發布關鍵字模式 三

import pika import pika 輸入普通憑據 登入使用者名稱和密碼 credentials pika.plaincredentials admin admin 輸入連線引數 阻塞連線 connection pika.blockingconnection pika.connection...