SpringData之repository介面詳解

2021-08-08 22:25:47 字數 1450 閱讀 2863

repository 介面是 spring data 的乙個核心介面,它不提供任何方法,開發者需要在自己定義的介面中宣告需要的方法

與繼承 repository 等價的一種方式。@repositorydefinition 註解,並為其指定 domainclass 和 idclass 屬性。

目前我所了解 兩種方式沒有區別

public inte***ce repository< t, id extends serializable> 僅僅是乙個標識,表明任何繼承它的均為倉庫介面類

crudrepository: 繼承 repository,實現了一組 crud 相關的方法

pagingandsortingrepository: 繼承 crudrepository,實現了一組分頁排序相關的方法

jparepository: 繼承 pagingandsortingrepository,實現一組 jpa 規範相關的方法

自定義的 ***xrepository 需要繼承 jparepository,這樣的 ***xrepository 介面就具備了通用的資料訪問控制層的能力。

一: springdata 方法定義規範

注意:注意:注意

該介面允許級聯查詢 -> 最好在級聯的屬性用 ( _ ) 來包含 否則出現同名屬性 則查詢同名屬性 不查詢級聯屬性!!!

// 自定義jpql傳遞引數查詢

@query("select e from emp whrer e.eid= 1?")

emptestgetempbyid(integereid){};

@query("select e from emp whrer e.ename = :ename?")

list

testgetempbyname(@param("ename")stringename){};

// 模糊查詢

@query("select e from emp e where e.ename %?1%")

list

findbyuuidorage(stringname);

// 本地sql查詢

@query(value="select count(*) from emp" ,nativequery=true)

long

findallemp();

三 : @modifying

若你想要執行dml(除增加)預設的事物管理無法達成

所以需要在repository內執方法新增該註解

並在service層呼叫該方法位置新增@transactional修改呼叫方法

springdata實現過程

我們會寫乙個介面繼承 然後在action裡用 autowired進行自動注入 spring會使用動態 為我們建立乙個類 也實現standardjparepository這個介面,裡邊會實現我們介面裡的所有方法,但都不是真的實現而是呼叫父類的handler進行操作,然後handler會根據你的方法名決...

Spring Data使用基礎

最近發現一篇比較全面生動的介紹spring data的博文。結合開發中mybatis hibernate druid等的使用,剛好加深了對資料庫相關的物件管理和orm的理解,很好的做了基礎總結。手把手教你如何玩轉spring data 附spring data中的repository方法名的命令規範...

Spring Data 學習筆記

jpa是乙個規範,用於操作各種資料庫。spring data對mongodb的支援。支援方法對映,根據方法規則生成sql進行查詢,方法命名規則參見4 flux findbynameand string name,string spring data mongodb支援在2.2版中引入mongodb的...