springboot jpa動態生成sql

2021-09-26 14:58:41 字數 1242 閱讀 2422

springboot jpa動態拼裝生成sql

第一步、在serviceimpl中autowired注入 entitymanager物件,定義三個內部成員,criteriabuilder 、criteriaquery、root,注入的泛型是要查詢的entity。

@autowired

private entitymanager entitymanager;

// 安全查詢工廠

private criteriabuilder cb = null;

// 安全查詢主句

private criteriaquerycriteriaquery = null;

private rootregister = null;

第二步、給serviceimpl乙個構造方法,傳入乙個entitymanager,在通過entityemanager的方法獲取其他三個物件。

public ***serviceimpl(entitymanager entitymanager)

第三步、獲取乙個字段集合。

用乙個私有方法生成乙個字段集合,傳入的引數是乙個具體的entity例項化物件。

private predicate getpredicates(entityclass entity) 

if (entity.getdepartmentid()!=null)

if(stringutils.isnotblank(entity.getresponsibilityid()))

return predicate.toarray(new predicate[0]);

}

第四步、呼叫,查詢。

先建立乙個具體的entity物件,給所需要查詢的字段對應的屬性賦值;

然後呼叫criteriaquery的where方法,傳入的引數是

this.criteriaquery.where(this.getpredicates(entity));   // entity是建立的具體entity例項化物件

typedquerytypedquery = this.entitymanager.createquery(this.criteriaquery); // entityclass是entity實際的類名

list***x_list= typedquery.getresultlist(); //呼叫查詢,返回乙個對應的list集合

Spring Boot JPA 命名規則

一 常用規則速查 1 and 並且 2 or 或 3 is,equals 等於 4 between 兩者之間 5 lessthan 小於 6 lessthanequal 小於等於 7 greaterthan 大於 8 greaterthanequal 大於等於 9 after 之後 時間 10 be...

SpringBoot JPA常用註解

就像 table註解用來標識實體類與資料表的對應關係類似,column註解來標識實體類中屬性與資料表中字段的對應關係。column name broker id columndefinition bigint 11 nullable false private long brokerid id co...

Spring Boot JPA訪問Mysql示例

上篇演示了通過m en構建spring boot 專案,引用web模組啟動應用,完成簡單的web 應用訪問,本章內容在此基礎上面加入資料訪問與埠修改,下文 與演例 本用例純手工測試通過,放心入坑 修改預設埠 在src main resources下加入application.properties內容...