spring data jpa 常見用法

2021-09-16 20:14:22 字數 2617 閱讀 5170

spring data jpa 是 spring 基於 orm 框架、jpa 規範的基礎上封裝的一套jpa應用框架,可使開發者用極簡的**即可實現對資料的訪問和操作。它提供了包括增刪改查等在內的常用功能,且易於擴充套件!學習並使用 spring data jpa 可以極大提高開發效率!

spring data jpa讓我們解脫了dao層的操作,基本上所有crud都可以依賴於它來實現

基本查詢也分為兩種,一種是spring data預設已經實現,一種是根據查詢的方法來自動解析成sql。

就是根據方法名來自動生成sql,主要的語法是findxxby,readaxxby,queryxxby,countxxby, getxxby後面跟屬性名稱:

listfindbyemaillike(string email);

user findbyusernameignorecase(string username);

listfindbyusernameorderbyemaildesc(string email

修改、刪除、統計也是類似語法
long deletebyid(long id);

long countbyusername(string username)

具體的關鍵字,使用方法和生產成sql如下表所示

keyword

sample

jpql snippet

andfindbylastnameandfirstname

… where x.lastname = ?1 and x.firstname = ?2

orfindbylastnameorfirstname

… where x.lastname = ?1 or x.firstname = ?2

is,equals

findbyfirstnameis,findbyfirstnameequals

… where x.firstname = ?1

between

findbystartdatebetween

… where x.startdate between ?1 and ?2

lessthan

findbyagelessthan

… where x.age < ?1

lessthanequal

findbyagelessthanequal

… where x.age ⇐ ?1

greaterthan

findbyagegreaterthan

… where x.age > ?1

greaterthanequal

findbyagegreaterthanequal

… where x.age >= ?1

after

findbystartdateafter

… where x.startdate > ?1

before

findbystartdatebefore

… where x.startdate < ?1

isnull

findbyageisnull

… where x.age is null

isnotnull,notnull

findbyage(is)notnull

… where x.age not null

like

findbyfirstnamelike

… where x.firstname like ?1

notlike

findbyfirstnamenotlike

… where x.firstname not like ?1

startingwith

findbyfirstnamestartingwith

endingwith

findbyfirstnameendingwith

… where x.firstname like ?1 (parameter bound with prepended %)

containing

findbyfirstnamecontaining

orderby

findbyageorderbylastnamedesc

… where x.age = ?1 order by x.lastname desc

notfindbylastnamenot

… where x.lastname <> ?1

infindbyagein(collectionages)

… where x.age in ?1

notin

findbyagenotin(collectionage)

… where x.age not in ?1

true

findbyactivetrue()

… where x.active = true

false

findbyactivefalse()

… where x.active = false

ignorecase

findbyfirstnameignorecase

… where upper(x.firstame) = upper(?1)

spring data jpa實體繼承

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

SpringData JPA分頁查詢

首先我們需要知道springdata jpa 的幾個介面 其實看名字就大概懂了,也可以很方便的使用 首先我們的持久化層繼承jparepository,相當於繼承了增刪改查的持久化層以及分頁查詢的持久化層 所以如果我們要使用分頁查詢 我們只需要直接呼叫 由一開始的圖也可以看到pageable的其中乙個...

springData Jpa簡單查詢

一 介面方法整理速查 下表針對於簡單查詢,即jparepository介面 繼承了crudrepository介面 pagingandsortingrepository介面 中的可訪問方法進行整理。1 先按照功能進行分類整理,分為儲存 刪除 查詢單個 查詢多個 其他5類。2 再將不建議使用的方法置灰...