JPA多條件查詢 分頁 區域性重新整理

2021-10-07 11:18:39 字數 3147 閱讀 6194

使用多條件查詢:

①實體類

//標明為實體類

@entity

//命名為一張表,如果db中沒有則新增一張表,若有則更新字段,

//name可以設定表名,若不設定,則與類同名

@table

(name=

"t_collection"

)public

class

collect

public long getid()

public

void

setid

(long id)

public long getuserid()

public

void

setuserid

(long userid)

public long getblogid()

public

void

setblogid

(long blogid)

public string gettitle()

public

void

settitle

(string title)

@override

public string tostring()

';}}

②dao層

//寫乙個repository 繼承jparepository, jpaspecificationexecutor兩個

//第乙個是用來呼叫jpa封裝好的sql語句,第二個是主角-多條件查詢構造器,多條件查詢的封裝

public

inte***ce

collectrepository

extends

jparepository

, jpaspecificationexecutor

③service層

寫乙個service介面,同樣的,如果是只是多條件查詢,可以不寫裡面的方法。

public

inte***ce

collectservice

④service層實現

由於篇幅有限,去掉了其他的方法實現,留下了今天的主角

//標註為service 並實現collectservice介面

@service

public

class

collectserviceimpl

implements

collectservice

},pageable);}

}

搞定: 只需要在controller中呼叫即可,可以通過model建立乙個model,呼叫addattribute()方法加入到model中,從前端獲取出來進行分頁操作。

搭配上:

function

loaddata()

]]*/

"/collect1",)

;}

②記得每一次都要呼叫多條件查詢的方法,然後只用區域性重新整理即可,返回的是區域性"mycollection :: collectlist"

③th:fragment=「collectlist」 進行table區域性重新整理

th

:fragment="collectlist" class="ui compact teal table">

ps:第一次進入的時候千萬不要區域性重新整理,而是寫另乙個方法是直接重新整理整個頁面,不然只重新整理區域性的話,那麼只會顯示區域性的資訊,其他的外觀就看不到了。

另外乙個例子:

@override

public page

listblog

(pageable pageable, blogquery blog)

if(blog.

gettypeid()

!= null)

if(blog.

isrecommend()

) cq.

where

(predicates.

toarray

(new

predicate

[predicates.

size()

]));

return null;}}

,pageable)

;}

還有一種:

@override

public page

listblog

(pageable pageable, blogquery blog)

if(blog.

gettypeid()

!= null)

if(blog.

isrecommend()

)//通過and方法拼接兩個predicate;

cb.and(cb.

like

(root.

get(

"title"),

"%"+blog.

gettitle()

+"%"

),cb.

equal

(root.

get(

"type").

get(

"id"

), blog.

gettypeid()

)); cq.

where

(predicates.

toarray

(new

predicate

[predicates.

size()

]));

return null;}}

,pageable)

;}

JPA 多表左連線多條件分頁查詢

業務場景 主表 訂單表,與客戶表 產品表 物流表存在一對一關係,對映欄位為id,現需要根據訂單編號 訂單日期 客戶名稱 客戶編號 產品名稱 產品編號 快遞單號查詢該筆訂單,需要支援模糊查詢和分頁。order實體類中的需要進行一對一關係對映 onetoone joincolumn name expre...

jpa 多條件模糊查詢,分頁並排序

jpa 多條件模糊查詢,分頁並排序很難嗎,這樣寫不就幾行 的事嗎?搞不明白你們寫的怎麼長篇大論花裡胡哨的,看的一臉懵逼。jpa多欄位模糊查詢,持久層欄位還是要一一對應的,但是你可以在service層處理一下,只用乙個字段接收,然後放到每個屬性上 repository 只根據使用者名稱 page fi...

JPA 多條件 多表查詢

jpa對於簡單的查詢操作確實很給力,但是涉及到多表 多條件 分頁的場景就不是很好實現了。可行的解決方案 1 多條件 public inte ce baserepositoryextends jparepository,jpaspecificationexecutor使用specification來實...