Springdata Jpa使用規範

2021-09-29 20:05:48 字數 2085 閱讀 2459

repository:

1. repository:最頂層的介面,乙個空的介面,統一所有的repository型別,並且能夠讓元件掃瞄的時候能夠自動識別

2. crudrepository: repository的子介面,提供crud的操作

3. pagingandsortingrepository: crudrepository的子介面,新增了分頁和排序的功能

4. jparepository: 是pagingandsortingrepository的子介面,增加一些實用的功能,比如批量操作

5. jpaspecificationexecutor:來定義複雜查詢

@entity表示這個類是乙個實體類,參與jpa和資料庫表的對映

@table表示具體對映的表名

@id表示這個欄位是主鍵,@generatedvalue表示這個主鍵的生成策略

@column表示對映到資料庫的表的欄位名,欄位名和表字段不一致,修改註解@column的name屬性

public inte***ce userrepository extends jparepository, jpaspecificationexecutor

//繼承jparepository方便直接呼叫現有的方法進行crud,

//繼承jpaspecificationexecutor則是方便定義一些複雜的查詢

原生sql與jpql:

定義方法時候,上面加上註解@query,預設nativequery是false,此時value填入的是jpql語句,修改nativequery是true,就能夠寫入sql語句

//@query註解裡面寫jpql語句,定義查詢

@query(nativequery = false,value = " select p from user p where id = ?1")

user readid(integer id);

//query註解也可以定義sql語句,只要將nativequery屬性改為true

@query(nativequery = true, value = "select name from user where id = :id")

string findnamebyid(@param("id")integer id);

update/delete操作需要事務支援,必須在service層,新增事務,因為spring data,預設情況下每個方法是唯讀事務,不能完成update/delete操作。在@query註解中定義,必須加上@modify,告訴spring data 這是乙個update/delete操作。

模糊查詢:

//模糊查詢

@query(nativequery = true,value = " select * from user where name like %?1% ")

user finduserbylikename(string name);

分頁查詢:定義分頁查詢,只需要將查詢的引數和分頁物件作為引數。

pagefindbynamelike(string str , pageable pageable);
public inte***ce userrepository extends jparepository

增加countquery屬性,用於總數的統計 可以不要

@runwith(value = springjunit4classrunner.class)

public class springdatatest

}

ort物件,定義排序規則,常用的是下面這種建構函式,支援可變引數的

public sort(sort.direction direction, string... properties)

使用Spring Data JPA進行分頁和排序

概觀 在處理大量資料時,延遲處理通常是必不可少的。即使服務返回大量資料,消費者也不太可能使用它。考慮乙個購物 客戶在該 上搜尋產品,該 有數千種產品可供展示。獲取數千種產品並在網頁上顯示它們將非常耗時。在大多數情況下,客戶甚至可能不會檢視所有產品。對於這種情況,使用稱為分頁的技術。首先只顯示一小部分...

Spring data JPA使用詳解 超詳細

目錄 jpa 元模型criteria查詢 criteriabuilder 安全查詢建立工廠 criteriaquery 安全查詢主語句 root predicate 過濾條件 predicate 多個過濾條件 spring data jpa簡介 spring data jpa是spring在orm框...

spring data jpa實體繼承

spring jpa中我們要將sql對映到物件,尤其是在spring boot這種高度自動化的環境下使用,大量的最優目錄結構與命名規則可以大大降低配置,約定大於配置貫穿其中。例如我們定義查詢dao,繼承jparepository即可。然後返回的物件,我們可以定義model entity table ...