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

2021-08-20 21:15:06 字數 1680 閱讀 3540

業務場景:

主表:訂單表,與客戶表、產品表、物流表存在一對一關係,對映欄位為id,現需要根據訂單編號、訂單日期、客戶名稱、客戶編號、產品名稱、產品編號、快遞單號查詢該筆訂單,需要支援模糊查詢和分頁。

order實體類中的需要進行一對一關係對映:

@onetoone

@joincolumn(name = "express_id")

private express express;

@onetoone

@joincolumn(name = "product_id")

private product product;

@onetoone

@joincolumn(name = "customer_id")

private customer customer;

dao中的需要繼承jparepository,

jpaspecificationexecuto兩個介面:

@repository

public inte***ce orderdaoextends jparepository, jpaspecificationexecutor

service中的寫法:

pageable通過前端傳入的pagesize 和 pagenum進行建立

pageable pageable = pagerequest.of(pagenum - 1, pagesize);
@autowired

orderdao licensedao;

@autowired

keypairservice keypairservice;

public pagegetlicenselist(order order, pageable pageable)

if (null != order.getcustomer() && !stringutils.isempty(order.getcustomer().getname()))

if (null != order.getproduct() && !stringutils.isempty(order.getproduct().getcode()))

if (null != order.getproduct() && !stringutils.isempty(order.getproduct().getname()))

if (null != order.getexpress() && !stringutils.isempty(order.getexpress().getcode()))

if (!stringutils.isempty(order.getcode()))

if (null != order.getcreatedate())

predicate p = new predicate[list.size()];

return criteriabuilder.and(list.toarray(p));}};

return orderdao.findall(specification, pageable);

}

JPA 多條件 多表查詢

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

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

使用多條件查詢 實體類 標明為實體類 entity 命名為一張表,如果db中沒有則新增一張表,若有則更新字段,name可以設定表名,若不設定,則與類同名 table name t collection public class collect public long getid public voi...

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

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