Spring Data JPA從入門到精通

Spring Data JPA從入門到精通

《Spring Data JPA從入門到精通》是2018年5月1日清華大學出版社出版的圖書,作者是張振華。

基本介紹

  • 中文名:Spring Data JPA從入門到精通
  • 作者:張振華
  • 出版社清華大學出版社
  • 出版時間:2018年5月1日
  • 定價:59 元
  • ISBN:9787302499480 
內容簡介,圖書目錄,作者簡介,

內容簡介

《Spring Data JPA從入門到精通》以Spring Boot為技術基礎,從入門到精通,由淺入深地介紹Spring Data JPA的使用。有語法,有實踐,有原理剖析。 《Spring Data JPA從入門到精通》分為12章,內容包括整體認識JPA、JPA基礎查詢方法、定義查詢方法、註解式查詢方法、@Entity實例裡面常用註解詳解、JpaRepository擴展詳解、JPA的MVC擴展REST支持、DataSource的配置、樂觀鎖、SpEL表達式在Spring Data裡面的套用、Spring Data Redis實現cacheable的實踐、IntelliJ IDEA加快開發效率、Spring Data REST簡單介紹等。 《Spring Data JPA從入門到精通》適合Java開發初學者、Java開發工程師、Java開發架構師閱讀,也適合高等院校和培訓學校相關專業的師生教學參考。

圖書目錄

第一部分 基礎部分
第1章 整體認識JPA 3
1.1 市場上ORM框架比對 3
1.2 JPA的介紹以及開源實現 4
1.3 了解Spring Data 5
1.3.1 Spring Data介紹 5
1.3.2 Spring Data的子項目 5
1.3.3 Spring Data操作的主要特性 6
1.4 Spring Data JPA的主要類及結構圖 7
1.5 MySQL的快速開發實例 8
第2章 JPA基礎查詢方法 13
2.1 Spring Data Common的Repository 13
2.2 Repository的類層次關係 (diagms/hierarchy/structure) 14
2.3 CrudRepository方法詳解 16
2.3.1 CrudRepository interface內容 17
2.3.2 CrudRepository interface的使用示例 18
2.4 PagingAndSortingRepository方法詳解 19
2.4.1 PagingAndSortingRepository interface 內容 19
2.4.2 PagingAndSortingRepository使用示例 20
2.5 JpaRepository方法詳解 21
2.5.1 JpaRepository詳解 21
2.5.2 JpaRepository的使用方法 21
2.6 Repository的實現類SimpleJpaRepository 22
第3章 定義查詢方法 24
3.1 定義查詢方法的配置方法 24
3.2 方法的查詢策略設定 25
3.3 查詢方法的創建 26
3.4 關鍵字列表 27
3.5 方法的查詢策略的屬性表達式 29
3.6 查詢結果的處理 29
3.6.1 參數選擇分頁和排序(Pageable/Sort) 29
3.6.2 查詢結果的不同形式(List/Stream/Page/Future) 30
3.6.3 Projections對查詢結果的擴展 31
3.7 實現機制介紹 34
第4章 註解式查詢方法 36
4.1 @Query詳解 36
4.1.1 語法及源碼 36
4.1.2 @Query用法 37
4.1.3 @Query排序 38
4.1.4 @Query分頁 39
4.2 @Param用法 40
4.3 SpEL表達式的支持 40
4.4 @Modifying修改查詢 41
4.5 @QueryHints 42
4.6 @Procedure儲存過程的查詢方法 43
4.7 @NamedQueries預定義查詢 44
4.7.1 簡介 44
4.7.2 用法舉例 45
4.7.3 @NamedQuery、@Query和方法定義查詢的對比 45
第5章 @Entity實例裡面常用註解詳解 46
5.1 javax.persistence概況介紹 46
5.2 基本註解 48
5.2.1 @Entity 48
5.2.2 @Table 49
5.2.3 @Id 50
5.2.4 @IdClass 50
5.2.5 @GeneratedValue 51
5.2.6 @Basic 52
5.2.7 @Transient 52
5.2.8 @Column 52
5.2.9 @Temporal 53
5.2.10 @Enumerated 53
5.2.11 @Lob 54
5.2.12 幾個注釋的配合使用 54
5.3 關聯關係註解 55
5.3.1 @JoinColumn 定義外鍵關聯的欄位名稱 55
5.3.2 @OneToOne關聯關係 55
5.3.3 @OneToManyg與@ManyToOne關聯關係 56
5.3.4 @OrderBy關聯查詢時排序 57
5.3.5 @JoinTable關聯關係表 58
5.3.6 @ManyToMany關聯關係 59
5.4 Left join、Inner join與@EntityGraph 60
5.4.1 Left join與Inner join 60
5.4.2 @EntityGraph 61
5.5 關於關係查詢的一些坑 61
第二部分 晉級之高級部分
第6章 JpaRepository擴展詳解 65
6.1 JpaRepository介紹 65
6.2 QueryByExampleExecutor的使用 66
6.2.1 QueryByExampleExecutor詳細配置 66
6.2.2 QueryByExampleExecutor的使用示例 67
6.2.3 QueryByExampleExecutor的特點及約束 68
6.2.4 ExampleMatcher詳解 68
6.2.5 QueryByExampleExecutor使用場景&實際的使用 70
6.2.6 QueryByExampleExecutor的原理 73
6.3 JpaSpecificationExecutor的詳細使用 74
6.3.1 JpaSpecificationExecutor的使用方法 74
6.3.2 Criteria概念的簡單介紹 75
6.3.3 JpaSpecificationExecutor示例 76
6.3.4 Specification工作中的一些擴展 78
6.3.5 JpaSpecificationExecutor實現原理 80
6.4 自定義Repository 81
6.4.1 EntityManager介紹 81
6.4.2 自定義實現Repository 82
6.4.3 實際工作的套用場景 84
第7章 Spring Data JPA的擴展 95
7.1 Auditing及其事件詳解 96
7.1.1 Auditing如何配置 96
7.1.2 @MappedSuperclass 98
7.1.3 Auditing原理解析 99
7.1.4 Listener事件的擴展 101
7.2 @Version處理樂觀鎖的問題 103
7.3 對MvcWeb的支持 105
7.3.1 @EnableSpringDataWebSupport 105
7.3.2 DomainClassConverter組件 105
7.3.3 HandlerMethodArgumentResolvers可分頁和排序 106
7.3.4 @PageableDefault改變默認的page和size 108
7.3.5 Page原理解析 108
7.4 @EnableJpaRepositories詳解 110
7.4.1 Spring Data JPA載入Repositories配置簡介 110
7.4.2 @EnableJpaRepositories詳解 111
7.4.3 JpaRepositoriesAutoConfiguration源碼解析 113
7.5 默認日誌簡單介紹 114
7.6 Spring Boot JPA的版本問題 117
第8章 DataSource的配置 119
8.1 默認數據源的講解 120
8.1.1 通過三種方法查看默認的DataSource 120
8.1.2 DataSource和JPA的配置屬性 123
8.1.3 JpaBaseConfiguration 124
8.1.4 Configuration思路 126
8.2 AliDruidDataSource的配置 126
8.3 事務的處理及其講解 129
8.3.1 默認@Transactional註解式事務 129
8.3.2 聲明式事務 133
8.4 如何配置多數據源 134
8.4.1 在application.properties中定義兩個DataSource 134
8.4.2 定義兩個DataSourceConfigJava類 135
8.5 Naming命名策略詳解及其實踐 137
8.5.1 Naming命名策略詳解 137
8.5.2 實際工作中的一些擴展 139
8.6 完整的傳統XML的配置方法 140
第三部分 延展部分
第9章 IntelliJ IDEA與Spring JPA 145
9.1 IntelliJ IDEA概述 145
9.2 DataBase外掛程式 146
9.3 Persistence及JPA相關的外掛程式介紹 150
9.4 IntelliJ IDEA分析源碼用到的視圖 155
第10章 Spring Data Redis詳解 158
10.1 Redis 之 Jedis 的使用 158
10.2 Spring Boot+Spring Data Redis配置 164
10.2.1 第1步:分析一下源碼 165
10.2.2 第2步:配置方法 168
10.2.3 第3步:調用的地方 170
10.2.4 第4步:總結 171
10.2.5 主要的幾個類&簡單用法介紹 171
10.3 Spring Data Redis結合Spring Cache配置方法 172
10.3.1 Spring Cache 介紹 172
10.3.2 Spring Boot快速開始Demo 176
10.3.3 Spring Boot Cache 實現過程解析 177
10.3.4 Cache和Spring Data Redis結合快速開始 179
10.3.5 Spring Boot實現過程 182
第11章 SpEL表達式講解 189
11.1 SpEL介紹 189
11.1.1 SpEL主要特點 190
11.1.2 使用方法 190
11.2 SpEL的基礎語法 191
11.2.1 邏輯運算操作 192
11.2.2 邏輯關係比較 193
11.2.3 邏輯關係 194
11.2.4 三元表達式& Elvis運算符 194
11.2.5 正則表達式的支持 195
11.2.6 Bean的引用 195
11.2.7 List 和 Map 的操作 196
11.3 主要的類及其原理 197
11.3.1 ExpressionParser 197
11.3.2 root object 198
11.3.3 EvaluationContext 199
11.3.4 類型轉換 199
11.3.5 SpelParserConfiguration 編譯器配置 200
11.3.6 表達式模板設定 201
11.3.7 主要類關係圖 202
11.3.8 SpEL支持的一些特性 202
11.4 Spring的主要使用場景 203
11.4.1 Spring Data JPA中SpEL支持 203
11.4.2 Spring Cachae 204
11.4.3 @Value 204
11.4.4 Web 驗證套用場景 205
11.4.5 總結 205
第12章 Spring Data REST 206
12.1 快速入門 206
12.1.1 Spring Data REST介紹 206
12.1.2 快速開始 208
12.1.3 Repository資源接口介紹 215
12.2 Spring Data REST定製化 216
12.2.1 @RepositoryRestResource改變***Repository對應的Path路徑和資源名字 216
12.2.2 @RestResource 改變SearchPath 217
12.2.3 改變返回結果 218
12.2.4 隱藏某些Repository、Repository的查詢方法或@Entity關係欄位 219
12.2.5 隱藏Repository的CRUD方法 219
12.2.6 自定義JSON輸出 220
12.3 Spring Boot 2.0載入原理 220
12.4 未來發展 222
附錄1 Repository Query Method 關鍵字列表 223
附錄2 Repository Query Method 返回值類型 226
附錄3 JPA註解大全 228
附錄4 Spring中涉及的註解 232
附錄5 application.properties 裡面關於JPA的配置大全 235

作者簡介

張振華,先後在驢媽媽、攜程、要買車等公司擔任過Java高級工程師、架構師、開發主管、技術經理等職務,有豐富的電商公司的網際網路工作經驗。在電商公司工作期間,負責過PC站和後端服務的平台架構、實現和升級。目前從事Spring相關的Java架構工作,對Spring整個全家桶特別鐘愛。從業十幾年來沒有離開過Java。著有圖書《Java並發編程從入門到精通》。

相關詞條

熱門詞條

聯絡我們