《Pro JPA2中文版:精通Java持久化API》是2011年清華大學出版社出版的圖書,作者是基恩、席卡里爾。
基本介紹
- 書名:Pro JPA2中文版:精通Java持久化API
- 作者:基恩(Mike Keith)、席卡里爾(Schincariol.M.)
- 原版名稱:Pro JPA 2: Mastering the Java(TM) Persistence API
- 譯者:巢文涵
- ISBN:9787302258025
- 頁數:460
- 出版社:清華大學出版社
- 出版時間:2011年10月1日
- 裝幀:平裝
- 開本:16
內容簡介,編輯推薦,媒體推薦,作者簡介,目錄,
內容簡介
《Pro JPA2中文版:精通Java持久化API》上一版的目標之一是儘可能地簡單明了,但是不短缺。我們盡力調整了它的大小,從而只描述我們感覺值得講述的內容,但是依然確保適合在您的行李中攜帶《Pro JPA2中文版:精通Java持久化API》,以便於您在公共汽車或火車上閱讀。然而,為了能夠保持我們在第1版中所有的材料,同時添加兩個章節和更多的功能,這看起來確實像是苛求。註解引用成為了這個要求的受害者。
編輯推薦
《Pro JPA2中文版:精通Java持久化API》:明確指導使用新的JPA 2創建健壯的,數據驅動的應用程式。
媒體推薦
令人難以置信的是,自從初始的Java持久化API 1.0版本發布以來,已經過去了三年。此間,我們目睹了它由成熟的API轉變成主流的持久化標準。與此同時,許多讀者使用本書的上一個版本作為掌握JPA的起點,很高興我們在此過程中對您有所幫助!
JPA 2.0包括了一系列新特性,例如,其他的對象關係映射、更靈活的對象建模、類型化查詢以及嶄新的條件API等。由於有很多內容需要討論,因此我們很興奮能夠更新其內容,解釋所有新特性,而且還包括了一些提示和技巧來幫助您在實踐中使用API。
如果您已經具備使用JPA 1.0的經驗,那么應該能夠從在JPA2.0中添加一個新特性時所指出的版本提示中獲益。這些提示旨在幫助用戶編寫一個JPA 1.0實現,但還不能使用2.0特性。
對於JPA新手來說,大可不必擔心會被遺忘。我們依然堅持最初的意圖:把沒有任何JPA基礎的人訓練成JPA高級開發人員。在《Pro JPA 2中文版:精通Java持久化API》的前兩章中,您應該能夠快速掌握入門所需的知識(資深的JPA編程人員可以從第3章開始)。最後,我們要表示感謝,因為是您使得本書的上一個版本如此成功。我們非常高興它已經成為JPA開發人員的主要參考資源,希望您能夠發現《Pro JPA 2中文版:精通Java持久化API》具有同樣的價值。
——Mike Keith(JPA2.0專家組成員)和Merrick Schincariol
作者簡介
作者:(加拿大)基恩 (Mike Keith) (加拿大)席卡里爾 (Schincariol.M.) 譯者:巢文涵
基恩,是JPA l.0的共同規範領導(co-specification lead),也是JPA 2.0專家組的活躍成員。他是許多其他JCP(Java Community Process)專家組的成員,包括JSR 316、Java EE6平台規範,以及OSGi Alliance的企業專家組(Enterprise Expert Group,EEG)。他獲得了卡爾頓(Carleton)大學的計算機科學碩士學位,並且在持久性和分散式系統的研究與實踐方面擁有20多年的經驗。他撰寫了許多關於JPA的論文和文章,並在世界各地的眾多會議中發表過演講。他也是一名資深的Oracle架構師。
席卡里爾,是一名Oracle顧問工程師,擅長中間件技術。他獲得了湖首(Lakehead)大學的計算機科學學士學位,擁有十年以上的企業軟體開發經驗。在轉向編寫Java和J2EE應用程式之前,他在前Java企業(pre-Java enterprise)和商業智慧型領域從事諮詢工作。Merrick在大型系統和數據倉庫設計方面擁有豐富的經驗,這使他能夠從一個成熟和實踐的角度來看待企業軟體,從而為他後來從事EJB容器實現的工作奠定了基礎。他還是Oracle EJB 3.0實現的首席工程師。
目錄
第1章 簡介 1
1.1 對象-關係映射 1
1.2 java持久化支持 7
1.2.1 專用解決方案 7
1.2.2 jdbc 7
1.2.3 企業javabean 8
1.2.4 java數據對象 8
1.3 為什麼需要另一種標準 9
1.4 java持久化api 10
1.4.1 規範的歷史 10
1.4.2 概述 11
1.5 本章小結 13
第2章 入門 14
2.1 實體概述 14
2.1.1 持久性 14
2.1.2 標識 15
2.1.3 事務性 15
2.1.4 粒度 15
2.2 實體元數據 16
2.2.1 註解 16
2.2.2 xml 16
2.2.3 異常配置 16
2.3 創建實體 17
2.4 實體管理器 19
2.4.1 獲取實體管理器 20
2.4.2 持久化實體 20
2.4.3 尋找實體 21
2.4.4 刪除實體 22
2.4.5 更新實體 22
2.4.6 事務 23
2.4.7 查詢 24
2.5 匯總 25
2.6 組裝 27
2.6.1 持久化單元 27
2.6.2 持久化存檔檔案 28
2.7 本章小結 28
第3章 企業應用程式 30
3.1 應用程式組件模型 30
3.2 會話bean 31
3.2.1 無狀態會話bean 32
3.2.2 有狀態會話bean 35
3.2.3 單例會話bean 38
3.3 訊息驅動bean 41
3.4 servlet 42
3.5 依賴性管理 43
3.5.1 依賴性查找 43
3.5.2 依賴性注入 45
3.5.3 聲明依賴性 47
3.6 事務管理 49
3.6.1 事務概述 50
3.6.2 java中的企業事務 50
3.7 使用java ee組件 55
3.7.1 使用無狀態會話bean 55
3.7.2 使用有狀態會話bean 56
3.7.3 使用單例會話bean 57
3.7.4 使用訊息驅動bean 57
3.7.5 添加實體管理器 58
3.8 匯總 59
3.8.1 定義組件 59
3.8.2 定義用戶接口 61
3.8.3 組裝 61
3.9 本章小結 62
第4章 對象-關係映射 64
4.1 持久化註解 64
4.2 訪問實體狀態 65
4.2.1 欄位訪問 65
4.2.2 屬性訪問 66
4.2.3 混合訪問 66
4.3 映射到表 68
4.4 映射簡單類型 69
4.4.1 列映射 70
4.4.2 延遲提取 71
4.4.3 大型對象 72
4.4.4 枚舉類型 73
4.4.5 時間類型 74
4.4.6 瞬態 75
4.5 映射主鍵 76
4.5.1 重寫主鍵列 76
4.5.2 主鍵類型 76
4.5.3 標識符生成 76
4.6 關係 81
4.6.1 關係概念 81
4.6.2 映射概述 84
4.6.3 單值關聯 84
4.6.4 集合值關聯 88
4.6.5 延遲關係 94
4.7 嵌入對象 94
4.8 本章小結 98
第5章 集合映射 99
5.1 關係和元素集合 99
5.2 使用不同的集合類型 102
5.2.1 set或者collection 102
5.2.2 list 103
5.2.3 map 106
5.2.4 重複 117
5.2.5 null值 118
5.3 最佳實踐 119
5.4 本章小結 120
第6章 實體管理器 121
6.1 持久化上下文 121
6.2 實體管理器 122
6.2.1 容器託管的實體管理器 122
6.2.2 應用程式託管的實體管理器 126
6.3 事務管理 128
6.3.1 jta事務管理 129
6.3.2 資源本地的事務 137
6.3.3 事務回滾和實體狀態 139
6.4 選擇實體管理器 140
6.5 實體管理器操作 140
6.5.1 持久化實體 140
6.5.2 尋找實體 142
6.5.3 刪除實體 142
6.5.4 級聯操作 143
6.5.5 清除持久化上下文 146
6.6 與資料庫同步 147
6.7 分離和合併 149
6.7.1 分離 149
6.7.2 合併分離的實體 151
6.7.3 與分離實體一起工作 154
6.8 本章小結 166
第7章 使用查詢 167
7.1 java持久化查詢語言 167
7.1.1 入門 168
7.1.2 篩選結果 169
7.1.3 投影結果 169
7.1.4 實體之間的聯接 169
7.1.5 聚合查詢 170
7.1.6 查詢參數 170
7.2 定義查詢 171
7.2.1 動態查詢定義 171
7.2.2 命名查詢定義 173
7.3 參數類型 175
7.4 執行查詢 177
7.4.1 使用查詢結果 178
7.4.2 查詢分頁 182
7.4.3 查詢與未提交的更改 184
7.4.4 查詢逾時 186
7.5 批量更新和刪除 187
7.5.1 使用批量更新和刪除 187
7.5.2 批量刪除和關係 189
7.6 查詢提示 190
7.7 查詢的最佳實踐 191
7.7.1 命名查詢 191
7.7.2 報告查詢 192
7.7.3 供應商提示 192
7.7.4 無狀態會話bean 192
7.7.5 批量更新和刪除 193
7.7.6 提供程式的區別 193
7.8 本章小結 193
第8章 查詢語言 195
8.1 簡介 195
8.1.1 術語 195
8.1.2 示例數據模型 196
8.1.3 示例應用程式 197
8.2 選擇查詢 199
8.2.1 select子句 200
8.2.2 from 子句 203
8.2.3 where子句 210
8.2.4 標量表達式 215
8.2.5 order by子句 219
8.3 聚合查詢 220
8.3.1 聚合函式 222
8.3.2 group by子句 222
8.3.3 having子句 223
8.4 更新查詢 223
8.5 刪除查詢 224
8.6 本章小結 225
第9章 條件api 226
9.1 概述 226
9.1.1 條件api 226
9.1.2 參數化類型 227
9.1.3 動態查詢 228
9.2 構建條件api查詢 231
9.2.1 創建查詢定義 231
9.2.2 基本結構 232
9.2.3 條件對象和可變性 233
9.2.4 查詢根和路徑表達式 233
9.2.5 select子句 235
9.2.6 from子句 238
9.2.7 where子句 240
9.2.8 構建表達式 240
9.2.9 order by子句 251
9.2.10 group by和having子句 251
9.3 強類型查詢定義 251
9.3.1 元模型api 252
9.3.2 強類型的api概述 253
9.3.3 規範化元模型 254
9.3.4 選擇正確的查詢類型 256
9.4 本章小結 257
第10章 高級對象-關係映射 258
10.1 表和列名 258
10.2 複雜的嵌入對象 259
10.2.1 高級嵌入映射 260
10.2.2 重寫嵌入關係 261
10.3 複合主鍵 262
10.3.1 id類 263
10.3.2 嵌入id類 264
10.4 派生標識符 266
10.4.1 派生標識符的基本規則 267
10.4.2 共享主鍵 267
10.4.3 多個映射特性 269
10.4.4 使用embeddedid 270
10.5 高級映射元素 272
10.5.1 唯讀映射 272
10.5.2 可選性 273
10.6 高級關係 274
10.6.1 使用聯接表 274
10.6.2 避免聯接表 275
10.6.3 複合聯接列 276
10.6.4 孤兒刪除 278
10.6.5 映射關係狀態 279
10.7 多個表 281
10.8 繼承 284
10.8.1 類層次結構 284
10.8.2 繼承模型 288
10.8.3 混合繼承 294
10.9 本章小結 296
第11章 高級主題 298
11.1 sql查詢 298
11.1.1 本地查詢與jdbc 299
11.1.2 定義和執行sql查詢 301
11.1.3 sql結果集映射 303
11.1.4 參數綁定 309
11.2 生命周期回調 309
11.2.1 生命周期事件 309
11.2.2 回調方法 310
11.2.3 實體偵聽器 312
11.2.4 繼承和生命周期事件 314
11.3 驗證 319
11.3.1 使用約束 319
11.3.2 調用驗證 321
11.3.3 驗證組 321
11.3.4 創建新的約束 323
11.3.5 jpa中的驗證 325
11.3.6 啟用驗證 326
11.3.7 設定生命周期的驗證組 326
11.4 並發性 327
11.4.1 實體操作 327
11.4.2 實體訪問 328
11.5 刷新實體狀態 328
11.6 鎖定 331
11.6.1 樂觀鎖定 331
11.6.2 悲觀鎖定 341
11.7 快取 344
11.7.1 通過層排序 344
11.7.2 共享快取 346
11.8 utility類 350
11.8.1 persistenceutil 351
11.8.2 persistenceunitutil 351
11.9 本章小結 352
第12章 xml映射檔案 353
12.1 元數據困惑 354
12.2 映射檔案 354
12.2.1 禁用註解 355
12.2.2 持久化單元默認值 357
12.2.3 映射檔案默認值 360
12.2.4 查詢和生成器 362
12.2.5 託管類和映射 366
12.3 本章小結 387
第13章 包裝和部署 388
13.1 配置持久化單元 388
13.1.1 持久化單元的名稱 389
13.1.2 事務類型 389
13.1.3 持久化提供程式 389
13.1.4 數據源 390
13.1.5 映射檔案 391
13.1.6 託管類 392
13.1.7 共享快取模式 394
13.1.8 驗證架構 395
13.1.9 添加供應商屬性 395
13.2 構建和部署 396
13.2.1 部署類路徑 396
13.2.2 包裝選項 397
13.2.3 持久化單元的範圍 401
13.3 伺服器外部 402
13.3.1 配置持久化單元 402
13.3.2 在運行時指定屬性 404
13.3.3 系統類路徑 404
13.4 架構生成 405
13.4.1 唯一約束 405
13.4.2 null約束 406
13.4.3 基於字元串的列 406
13.4.4 浮點列 407
13.4.5 定義列 407
13.5 本章小結 408
第14章 測試 410
14.1 測試企業應用程式 410
14.1.1 術語 411
14.1.2 在伺服器外部測試 412
14.1.3 測試架構 413
14.2 單元測試 413
14.2.1 測試實體 414
14.2.2 測試組件中的實體 415
14.2.3 單元測試中的實體管理器 417
14.3 集成測試 420
14.3.1 使用實體管理器 420
14.3.2 組件和持久化 426
14.4 最佳實踐 436
14.5 本章小結 436
第15章 遷移 438
15.1 從cmp實體bean遷移 438
15.1.1 劃定挑戰的範圍 439
15.1.2 實體bean轉換 440
15.2 從jdbc遷移 448
15.3 從其他的orm解決方案遷移 449
15.4 利用設計模式 449
15.4.1 傳輸對象 450
15.4.2 會話外觀 453
15.4.3 數據訪問對象 455
15.4.4 業務對象 459
15.4.5 快車道讀者 459
15.4.6 活動記錄 460
15.5 本章小結 460