業務場景:
主表:訂單表,與客戶表、產品表、物流表存在一對一關係,對映欄位為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...