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筆記
- JPA的多表複雜查詢
- Spring JPA聯表情況下的複雜查詢Spring
- Spring Data Jpa 複雜查詢總結 (多表關聯 以及 自定義分頁 )Spring
- Spring-Data-JPA criteria 查詢Spring
- Laravel Query Builder 複雜查詢案例:子查詢實現分割槽查詢 partition byLaravelUI
- SpringMVC+Spring Data JPA +Bootstrap 分頁實現和模糊查詢分頁SpringMVCboot
- Spring Data JPA原始碼案例Spring原始碼
- spring data jpa 多對一聯表查詢Spring
- spring data JPA 模糊查詢 --- 使用 LIKE --- 的寫法Spring
- SpringMVC+Spring Data JPA實現增刪改查操作SpringMVC
- 複雜查詢—子查詢
- Spring data jpa 多表查詢(三:多對多關係動態條件查詢)Spring
- SQL 複雜查詢SQL
- SQL複雜查詢SQL
- Spring Data JPA基本增刪改查和JPQL查詢(含完整程式碼和視訊連線)Spring
- Spring JPA 聯表查詢Spring
- Spring Data JpaSpring
- Spring Data JPA之Spring Data JPA快速入門(三)Spring
- oracle表複雜查詢Oracle
- Oracle複雜查詢(三)Oracle
- Spring JPA 定義查詢方法Spring
- 分散式資料庫下子查詢和 Join 等複雜 SQL 如何實現?分散式資料庫SQL
- spring-data-jpa + SpringBoot + bootstrapTable 後端分頁 模糊查詢Spring BootAPT後端
- Spring Data JPA中實現更新插入三種方法Spring
- Solr複雜查詢一:函式查詢Solr函式
- DataSet多表關聯實現本地資料複雜的查詢
- Spring Data Jpa APISpringAPI
- spring data jpa關聯查詢(一對一、一對多、多對多)Spring
- 使用Spring Data JPA實現DDD聚合的動態投影Spring
- Spring Data JPA專案實戰(下)Spring
- Spring Data JPA 的使用Spring
- Spring Data JPA:解析CriteriaBuilderSpringUI
- Spring Data JPA:解析CriteriaQuerySpring
- 瞭解 Spring Data JPASpring