TOP
0
0
【簡體曬書區】 單本79折,5本7折,活動好評延長至5/31,趕緊把握這一波!
Spring Data JPA:入門、實戰與進階(簡體書)
滿額折

Spring Data JPA:入門、實戰與進階(簡體書)

人民幣定價:129 元
定  價:NT$ 774 元
優惠價:87673
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:20 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

本書主要分為四個模塊,共33章。
模塊一主要從基本語法的視角,來詳細介紹 Spring Data JPA 的語法糖有哪些,包括源碼的剖析、實際工作中的經驗分享,以及作者對此的思考、啟發。模塊二從實際工作中的複雜應用場景開始,依次講解自定義場景,如何擴展 Spring 給我們提供的框架、數據源、連接、事務之間的關係,幫助讀者解決實踐中可能會遇到的問題,並學會獨立思考、穩妥解決。模塊三講解了實際工作遇到的經典問題,如 N+1 sql、lazy、事務的問題,及作者對此的思考和解決思路。模塊四從 Spring Data Rest、Spring Data ES、測試用例的角度,擴展思路,展望一下發展方向。

名人/編輯推薦

資深專家多年經驗總結,從語法到實踐,從實戰到原理分析,利用原理解決實際問題

目次

前 言
第一部分 基礎知識
第1章 初識Spring Data JPA 2
1.1 Spring Boot和JPA演示 2
1.2 JPA如何整合MySQL數據庫 8
1.2.1 切換MySQL數據源 8
1.2.2 Spring Data JPA測試用例的寫法 10
1.3 整體認識JPA 11
1.3.1 市場上ORM框架的對比 11
1.3.2 JPA簡介和開源實現 12
1.4 認識Spring Data 13
1.4.1 Spring Data簡介 13
1.4.2 Spring Data的子項目 14
1.5 本章小結 15
第2章 全面掌握Spring Data Commons之Repository 16
2.1 Spring Data Commons的依賴關係 16
2.2 Repository接口 17
2.2.1 查看Repository源碼 17
2.2.2 Repository類層次關係 17
2.2.3 Repository接口的實際案例 19
2.3 CrudRepository接口 21
2.4 PagingAndSortingRepository接口 23
2.4.1 PagingAndSortingRepository的源碼 23
2.4.2 PagingAndSortingRepository的使用案例 24
2.5 JpaRepository接口 25
2.6 Repository的實現類SimpleJpaRepository 26
2.7 Repository接口的啟發 27
2.8 本章小結 28
第3章 定義查詢方法的命名語法與參數 29
3.1 定義查詢方法的配置和使用方法 29
3.1.1 直接通過方法名實現CRUD步驟 30
3.1.2 選擇性暴露CRUD方法 30
3.2 方法的查詢策略設置 31
3.3 定義查詢方法的語法 32
3.3.1 語法剖析 32
3.3.2 關鍵源碼 34
3.4 特定類型的參數:Sort和Pageable 36
3.5 限制查詢結果:First和Top 38
3.6 @NonNull、@NonNullApi和@Nullable關鍵字 38
3.7 給我們的一些思考 39
3.8 本章小結 43
第4章 利用Repository中的方法返回值來解決實際問題 44
4.1 Repository的返回結果 44
4.1.1 自定義Streamable 46
4.1.2 返回結果類型List/Stream/Page/Slice 46
4.1.3 Repository對Feature/CompletableFuture異步返回結果的支持 52
4.1.4 對Reactive的支持:Flux與Mono 53
4.1.5 小結 53
4.2 最常見的DTO返回結果的支持方法 56
4.2.1 Projections概念 56
4.2.2 第一種方法:新建一張表的不同Entity 57
4.2.3 第二種方法:直接定義一個UserOnlyNameEmailDto 58
4.2.4 第三種方法:返回結果是一個POJO的接口 60
4.2.5 寫查詢方法的一個小技巧 62
4.3 本章小結 62
第5章 @Query語法詳解及其應用 63
5.1 快速體驗@Query的方法 63
5.2 JpaQueryLookupStrategy關鍵源碼剖析 64
5.3 @Query的基本用法 66
5.3.1 JPQL的語法 67
5.3.2 @Query的用法案例 68
5.3.3 @Query的排序 68
5.3.4 @Query的分頁 69
5.3.5 @Param的用法 70
5.4 @Query之Projections應用返回指定DTO 70
5.4.1 利用UserDto類 72
5.4.2 利用UserDto接口 73
5.5 @Query動態查詢解決方法 74
5.6 本章小結 77
第6章 @Entity的常用注解及Java多態場景應用 78
6.1 JPA協議中關於實體的相關規定 78
6.2 實體裡面常見的注解 79
6.3 生成注解的小技巧 85
6.4 聯合主鍵 86
6.4.1 如何通過@IdClass實現聯合主鍵 86
6.4.2 @Embeddable與@EmbeddedId注解的使用 88
6.5 如何實現實體之間的繼承關係 89
6.5.1 @Inheritance(strategy?=?InheritanceType.SINGLE_TABLE) 90
6.5.2 @Inheritance(strategy?=?InheritanceType.JOINED) 91
6.5.3 @Inheritance(strategy?=?InheritanceType.TABLE_PER_CLASS) 93
6.5.4 關於繼承關係的經驗之談 94
6.6 本章小結 95
第7章 實體之間關聯關係注解的正確使用 96
7.1 @OneToOne 96
7.1.1 @OneToOne的源碼解讀 98
7.1.2 mappedBy的注意事項 99
7.1.3 CascadeType的用法 99
7.1.4 orphanRemoval的屬性用法 100
7.1.5 主鍵和外鍵都是同一個字段 101
7.1.6 @OneToOne延遲加載下只需要ID值 102
7.1.7 @OneToOne的最佳實踐 104
7.2 @JoinCloumns和@JoinColumn 105
7.3 @ManyToOne和@OneToMany 106
7.4 @ManyToMany 110
7.4.1 利用@ManyToOne和@OneToMany表達多對多的關聯關係 112
7.4.2 @ManyToMany的最佳實踐 114
7.5 本章小結 114
第8章 Jackson在實體裡面的注解詳解 115
8.1 Jackson的基本語法 115
8.1.1 三個核心模塊 116
8.1.2 Jackson提供的擴展jar包 116
8.1.3 Jackson中常用的一些注解 117
8.1.4 實例 118
8.2 Jackson和Spring的關係 121
8.2.1 應用場景一:Spring MVC的View層 121
8.2.2 應用場景二:Open-Feign 121
8.2.3 應用場景三:Redis裡面 122
8.2.4 應用場景四:JMS消息序列化 122
8.3 Jackson的原理分析 123
8.3.1 Jackson的可見性原理分析 123
8.3.2 反序列化最重要的方法 124
8.3.3 Module的加載機制 126
8.4 Jackson與JPA常見的問題 127
8.4.1 如何解決死循環問題 127
8.4.2 JPA實體JSON序列化的常見報錯及解決方法 128
8.4.3 推薦的配置項 129
8.4.4 JSON序列化和Java序列化 131
8.5 本章小結 131
第二部分 高階用法與實例
第9章 QueryByExampleExecutor的用法和原理分析 135
9.1 QueryByExampleExecutor的用法 135
9.1.1 基本方法 135
9.1.2 使用案例 136
9.2 QueryByExampleExecutor的語法 140
9.2.1 Example的語法詳解 140
9.2.2 ExampleMatcher方法概述 141
9.2.3 初始化ExampleMatcher實例的方法 142
9.2.4 ExampleMatcher的語法 143
9.2.5 ExampleMatcher的完整例子 145
9.2.6 使用QueryByExampleExecutor時需要考慮的因素 146
9.3 QueryByExampleExecutor的實現原理 146
9.3.1 QueryByExampleExecutor的源碼分析 146
9.3.2 JpaSpecificationExecutor的接口結構 148
9.3.3 通過QBE反向思考JpaSpecificationExecutor 149
9.4 本章小結 149
第10章 JpaSpecificationExecutor的實現原理 150
10.1 JpaSpecificationExecutor的使用案例 150
10.2 JpaSpecificationExecutor的語法詳解 154
?10.2.1 Root root 156
?10.2.2 CriteriaQuery query 156
?10.2.3 CriteriaBuilder 157
10.3 JpaSpecificationExecutor的原理分析 158
10.4 JpaSpecificationExecutor實戰 160
?10.4.1 自定義MySpecification 161
?10.4.2 利用Specification創建以search為查詢條件的RESTful API 163
10.5 本章小結 165
第11章 Querydsl在JPA中的應用 166
11.1 Querydsl快速入門 166
11.2 Querydsl的語法 170
?11.2.1 QuerydslPredicateExecutor 170
?11.2.2 QuerydslBinderCustomizer 172
?11.2.3 類型安全的應用 174
11.3 Querydsl對WebMVC的支持
 及源碼分析 175
?11.3.1 @QuerydslPredicate注解 175
?11.3.2 QuerydslPredicateArgument-
 Resolver源碼分析 177
11.4 本章小結 179
第12章 如何自定義Repository 180
12.1 EntityManager簡介 180
?12.1.1 EntityManager的常用方法 180
?12.1.2 EntityManager的使用 182
12.2 @EnableJpaRepositories詳解 183
?12.2.1 @EnableJpaRepositories的語法 183
?12.2.2 @EnableJpaRepositories的默認加載方式 185
12.3 自定義Repository的實現類的方法 186
?12.3.1 第一種方法:定義獨立的Repository的Impl實現類 186
?12.3.2 第一種方法的原理分析 187
?12.3.3 第二種方法:通過@EnableJpaRepositories定義默認的實現類 190
?12.3.4 第二種方法的原理分析 192
12.4 實際應用場景 193
12.5 本章小結 193
第13章 JPA的Auditing功能 194
13.1 Auditing是什麼 194
13.2 如何實現Auditing 195
?13.2.1 第一種方式:直接在實例裡面添加上述四個注解 195
?13.2.2 第二種方式:在實體裡面實現Auditable接口 198
?13.2.3 第三種方式:利用@MappedSuperclass注解 200
13.3 JPA的Auditing功能解決了哪些問題 201
13.4 Auditing的實現原理 202
?13.4.1 Auditing的源碼分析 202
?13.4.2 結論 204
13.5 本章小結 205
第14章 @Entity回調方法的正確使用 206
14.1 Java Persistence API規定的回調方法 206
?14.1.1 Entity的回調事件注解 206
?14.1.2 語法注意事項 207
14.2 JPA回調注解的使用方法 207
?14.2.1 第一種用法:在實體和super-class中使用 207
?14.2.2 第二種用法:自定義EntityListener 212
?14.2.3 關於@EntityListeners加載順序的說明 214
14.3 JPA回調注解的最佳實踐 214
14.4 JPA回調注解的實現原理和事件機制 216
14.5 本章小結 217
第15章 樂觀鎖機制和重試機制在實戰中的應用 218
15.1 什麼是樂觀鎖 218
15.2 樂觀鎖的實現方法 218
?15.2.1 @Version的用法 219
?15.2.2 @Version對Save方法的影響 222
15.3 isNew判斷的邏輯 222
15.4 樂觀鎖機制和重試機制的實戰 224
?15.4.1 重試機制詳解 224
?15.4.2 @Retryable的詳細用法 225
?15.4.3 樂觀鎖+重試機制的最佳實踐 227
15.5 悲觀鎖的實現 227
15.6 本章小結 228
第16章 JPA對Web MVC開發的支持 229
16.1 DomainClassConverter組件 230
?16.1.1 一個實例 230
?16.1.2 源碼分析 231
16.2 Page和Sort的參數支持 233
?16.2.1 一個實例 233
?16.2.2 原理分析 235
16.3 Web MVC的參數綁定 236

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 673
海外經銷商無庫存,到貨日平均30天至45天