Spring Data JPA + QueryDSL實現CRUD和複雜查詢案例
Spring Data JPA僅執行CRUD操作,而對於所有複雜的查詢,使用QueryDSL。
可以使用此連結在GitHub上找到完整的專案。有一個簡單的SpringBoot應用程式,具有配置的MySQL資料來源和稱為Flyway遷移的初始資料庫結構。
引入QueryDSL:
<dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-jpa</artifactId> </dependency> <dependency> <groupId>com.querydsl</groupId> <artifactId>querydsl-apt</artifactId> </dependency> |
查詢Java寫法:
public List<Author> findAllWithBooks() {
return queryFactory
.select(author).distinct()
.from(author)
.innerJoin(author.books, book).fetchJoin()
.fetch();
}
輸出SQL:
select distinct author0_.id as id1_0_0_, books1_.id as id1_1_1_, author0_.email as email2_0_0_, author0_.full_name as full_nam3_0_0_, books1_.author_id as author_i4_1_1_, books1_.iban as iban2_1_1_, books1_.name as name3_1_1_, books1_.author_id as author_i4_1_0__, books1_.id as id1_1_0__ from author author0_ inner join book books1_ on author0_.id=books1_.author_id |
如您所見,僅執行了一個查詢。作者的所有書籍都將被載入,並且不會有其他子選擇或LazyLoadingExceptions。
distinct() 原始查詢中使用運算子從結果中刪除作者重複項。
相關文章
- Spring Data JPA 實現聯表查詢Spring
- Spring Data JPA 實現多表關聯查詢Spring
- spring data jpa查詢Spring
- Spring Data Jpa 的簡單查詢多表查詢HQL,SQL ,動態查詢, QueryDsl ,自定義查詢筆記SpringSQL筆記
- Spring Data Jpa 複雜查詢總結 (多表關聯 以及 自定義分頁 )Spring
- Spring JPA聯表情況下的複雜查詢Spring
- JPA的多表複雜查詢
- SpringMVC+Spring Data JPA +Bootstrap 分頁實現和模糊查詢分頁SpringMVCboot
- Laravel Query Builder 複雜查詢案例:子查詢實現分割槽查詢 partition byLaravelUI
- spring data jpa 多對一聯表查詢Spring
- Spring Data JPA原始碼案例Spring原始碼
- SpringMVC+Spring Data JPA實現增刪改查操作SpringMVC
- spring data JPA 模糊查詢 --- 使用 LIKE --- 的寫法Spring
- 複雜查詢—子查詢
- Spring Data JPA基本增刪改查和JPQL查詢(含完整程式碼和視訊連線)Spring
- 基於 MongoTemplate 實現MongoDB的複雜查詢MongoDB
- Spring JPA 聯表查詢Spring
- Spring Data JpaSpring
- Spring Data JPA之Spring Data JPA快速入門(三)Spring
- SQL 複雜查詢SQL
- Spring JPA 定義查詢方法Spring
- Spring Data JPA中實現更新插入三種方法Spring
- Spring Data Jpa APISpringAPI
- spring data jpa關聯查詢(一對一、一對多、多對多)Spring
- 分散式資料庫下子查詢和 Join 等複雜 SQL 如何實現?分散式資料庫SQL
- oracle表複雜查詢Oracle
- Spring Boot:整合Spring Data JPASpring Boot
- Solr複雜查詢一:函式查詢Solr函式
- Spring Data JPA專案實戰(下)Spring
- 使用Spring Data JPA實現DDD聚合的動態投影Spring
- Spring Data JPA框架的Repository自定義實現詳解Spring框架
- Spring Data JPA中TransactionInterceptorSpring
- Spring Data JPA中ConfigurableTransactionManagerSpring
- SpringBoot整合Spring Data JPASpring Boot
- Spring Data JPA:解析CriteriaQuerySpring
- Spring Data JPA:解析SimpleJpaRepositorySpring
- Spring Data JPA:解析CriteriaBuilderSpringUI
- Spring Data JPA 的使用Spring