在 Spring Data JPA 的特定規則下創建方法時,會創建呼叫相應查詢的方法。
例如,
public interface CustomerJpaRepository implements JpaRepository<Customer, Long>{
public List<Customer> findByName(String name);
}
findByName() 生成類似于下面的查詢。
select * from Customer where name = name;
我很好奇這個原理。準確地說,我對決議此方法并將其轉換為查詢的代碼很好奇。
我查看了實作JpaRepository的SimpleJpaRepository類的代碼,但找不到線索。(當然,也有我沒找到的可能)。
綜上所述,當在JpaRepository中宣告了一個由特定單詞組成的方法時,我很好奇內部實際執行這個方法的代碼。更具體地說,我想查看使此方法起作用的代碼。
如果內部沒有代碼做這個(我個人懷疑這可能...),我想知道它是如何詳細實作的,如果有解釋原理或內部流程的鏈接或材料,請分享相關參考.
uj5u.com熱心網友回復:
從 spring-data 存盤庫方法名稱創建查詢的決議邏輯目前主要在包中宣告org.springframework.data.repository.query.parser。
基本上,存盤庫方法名稱字串被決議為 a PartTree,其中包含Parts表示定義的抽象查詢條件。
所述PartTree然后可用于創建更具體的查詢物件,例如具有JpaQueryCreator或RedisQueryCreator根據存盤庫的型別,。
uj5u.com熱心網友回復:
我建議您查看這個Query Creation spring doc 它解釋了該方法如何轉換為查詢的規則。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/390722.html
