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...