Spring JPA 查詢的幾種方式並處理分頁

2021-08-27 14:35:36 字數 2308 閱讀 5581

第一種 namedquery(返回方式為列模式[原生態sql的複雜查詢])

1)dao層處理查詢並分頁

@suppresswarnings("unchecked")

public pageresultgetlist(integer currentpage)

pageresult.settotalcount(total);

pageresult.setpageresultlist(query.getresultlist());

return pageresult;

}

2)控制層**

處理分頁引數

protected void addpageresultmodel2(pageresultpct,integer currentpage, model model)
3)實體類

@namednativequeries

( ),

columns=

)})@entity

private static final long serialversionuid = -6530604520661376764l;

@id@generatedvalue(strategy = generationtype.identity)

private long id;// id

private long planid;//計畫id

private string orgname;//單位名稱

private string roomtype;//客房型別

private string roomnumber;//客房數

private string invoicetype;//發票型別

private string status;//狀態

public long getid()

public void setid(long id)

public long getplanid()

public void setplanid(long planid)

public string getorgname()

public void setorgname(string orgname)

public string getroomtype()

public void setroomtype(string roomtype)

public string getroomnumber()

public void setroomnumber(string roomnumber)

public string getinvoicetype()

public void setinvoicetype(string invoicetype)

public string getstatus()

public void setstatus(string status)

}

4)頁面處理

no.

培訓計畫

報名人數

操作 $$

$ 共$條資料.

$

$

第二種createnativequery(返回方式為實體物件集合)

1)dao層**

@suppresswarnings("unchecked")

public pageresultgetlist(integer currentpage)

pageresult.settotalcount(total);

pageresult.setpageresultlist(query.getresultlist());

return pageresult;

}

2)其他與第一種類似,實體類不需要注釋@namednativequeries等。頁面讀取為item.planid類似方法獲取資料,而不是item[0],item[1]。。。只是對於複雜的sql好像不太適合,比如說要count(id)某一列,目前用這種方式還不能實現幾個表直接複雜字段展現查詢。待研究。

第三種 註解物件查詢(返回方式為實體物件集合)

1)dao層

2)這裡可查詢集合,但是暫時還沒有方法如何去處理分頁。。。

springjpa(五)QueryDsl查詢細

這邊介紹個簡便方法,使用projections。首先我們還是以學校和學生表作為例子。這邊我們先建乙個studentdto public class studentdto public void setid long id public string getname public void setna...

Spring JPA組合查詢,根據條件查詢

spring jpa組合查詢,根據條件查詢 接手乙個專案,資料庫處理用的jpa,據留下這個攤子的人說很好用,大概用了一下,在一些基本的增刪改查上面確實方便,不用寫sql,但今天遇到了乙個稍微複雜一點的需求,之前mybatis是用的拼接sql語句或者在xml裡面用這種方式,在jpa這裡好像沒這個功能,...

Spring Jpa 按時間段查詢

專案中有需求要按照名稱模糊查詢和時間段查詢資料,可能只有名稱沒有時間,也可能只有時間沒有名稱,也可能這幾個引數同時匹配,所以要多條件動態查詢。jpaspecificationexecutor 介面提供很多條件查詢方法 public inte ce jpaspecificationexecutor 比...