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內容...