javascript
Spring Data JPA 从入门到精通~定义查询方法的配置方法
定義查詢方法的配置方法
由于 Spring JPA Repository 的實現原理是采用動態代理的機制,所以我們介紹兩種定義查詢方法,從方法名稱中可以指定特定用于存儲的查詢和更新,或通過使用 @Query 手動定義的查詢,取決于實際對數據的操作,只需要實體 Repository 繼承 Spring Data Common 里面的 Repository 接口即可,就像前面我們講的一樣。如果你想有其他更多默認通用方法的實現,可以選擇 JpaRepository、PagingAndSortingRepository、CrudRepository 等接口,也可以直接繼承我們后面要介紹的 JpaSpecificationExecutor、QueryByExampleExecutor,QuerydslPredicateExecutor 和自定義 Response,都可以達到同樣的效果。
如果不想擴展 Spring 數據接口,還可以使用它來注解存儲庫接口 @RepositoryDefinition,擴展 CrudRepository 公開了一套完整的方法來操縱實體。如果希望對所暴露的方法有選擇性,只需將要暴露的方法復制 CrudRepository 到域庫中即可,其實也是自定義 Repository 的一種。
示例:選擇性地暴露CRUD方法
@NoRepositoryBeaninterface MyBaseRepository<T, ID extends Serializable> extends Repository<T, ID> {T findOne(ID id); T save(T entity); } interface UserRepository extends MyBaseRepository<User, Long> {User findByEmailAddress(EmailAddress emailAddress); }在此實例中,您為所有域存儲庫定義了一個公共基礎接口,并將其暴露出來,findOne(…) 和 save(…) 這些方法將由 Spring Data 路由到你提供的 MyBaseRepository 的基本 Repository 實現中。在 JPA 的默認情況下,SimpleJpaRepository 作為上面兩個接口的實現類,所以 UserRepository 現在將能夠保存用戶,并通過 ID 查找單個,以及觸發查詢以 Users 通過其電子郵件地址查找。
綜上所述,得出以下兩單:
- MyRepository Extends Repository 接口就可以實現 Defining Query Methods 的功能。
- 繼承其他 Repository 的子接口,或者自定義子接口,可以選擇性的暴漏 SimpleJpaRepository 里面已經實現的基礎公用方法。
總結
以上是生活随笔為你收集整理的Spring Data JPA 从入门到精通~定义查询方法的配置方法的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 【itext学习之路】--3.对pdf文
- 下一篇: 软件系统架构~软件架构概念
