出版時(shí)間:2011-10 出版社:清華大學(xué)出版社 作者:[加拿大]Mike Keith 頁數(shù):460 譯者:[加拿大]Merrick Schincariol
Tag標(biāo)簽:無
內(nèi)容概要
本書上一版的目標(biāo)之一是盡可能地簡(jiǎn)單明了,但是不短缺。我們盡力調(diào)整了它的大小,從而只描述我們感覺值得講述的內(nèi)容,但是依然確保適合在您的行李中攜帶本書,以便于您在公共汽車或火車上閱讀。然而,為了能夠保持我們?cè)诘?版中所有的材料,同時(shí)添加兩個(gè)章節(jié)和更多的功能,這看起來確實(shí)像是苛求。注解引用成為了這個(gè)要求的受害者。
作者簡(jiǎn)介
基恩,是JPA l.0的共同規(guī)范領(lǐng)導(dǎo)(co-specification lead),也是JPA
2.0專家組的活躍成員。他是許多其他JCP(Java Community Process)專家組的成員,包括JSR 316、Java
EE6平臺(tái)規(guī)范,以及OSGi Alliance的企業(yè)專家組(Enterprise Expert
Group,EEG)。他獲得了卡爾頓(Carleton)大學(xué)的計(jì)算機(jī)科學(xué)碩士學(xué)位,并且在持久性和分布式系統(tǒng)的研究與實(shí)踐方面擁有20多年的經(jīng)驗(yàn)。他撰寫了許多關(guān)于JPA的論文和文章,并在世界各地的眾多會(huì)議中發(fā)表過演講。他也是一名資深的Oracle架構(gòu)師。
席卡里爾,是一名Oracle顧問工程師,擅長(zhǎng)中間件技術(shù)。他獲得了湖首(Lakehead)大學(xué)的計(jì)算機(jī)科學(xué)學(xué)士學(xué)位,擁有十年以上的企業(yè)軟件開發(fā)經(jīng)驗(yàn)。在轉(zhuǎn)向編寫Java和J2EE應(yīng)用程序之前,他在前Java企業(yè)(pre-Java
enterprise)和商業(yè)智能領(lǐng)域從事咨詢工作。Merrick在大型系統(tǒng)和數(shù)據(jù)倉庫設(shè)計(jì)方面擁有豐富的經(jīng)驗(yàn),這使他能夠從一個(gè)成熟和實(shí)踐的角度來看待企業(yè)軟件,從而為他后來從事EJB容器實(shí)現(xiàn)的工作奠定了基礎(chǔ)。他還是Oracle
EJB 3.0實(shí)現(xiàn)的首席工程師。
書籍目錄
第1章 簡(jiǎn)介
1.1 對(duì)象-關(guān)系映射
1.2 java持久化支持
1.2.1 專用解決方案
1.2.2 jdbc
1.2.3 企業(yè)javabean
1.2.4 java數(shù)據(jù)對(duì)象
1.3 為什么需要另一種標(biāo)準(zhǔn)
1.4 java持久化api
1.4.1 規(guī)范的歷史
1.4.2 概述
1.5 本章小結(jié)
第2章 入門
2.1 實(shí)體概述
2.1.1 持久性
2.1.2 標(biāo)識(shí)
2.1.3 事務(wù)性
2.1.4 粒度
2.2 實(shí)體元數(shù)據(jù)
2.2.1 注解
2.2.2 xml
2.2.3 異常配置
2.3 創(chuàng)建實(shí)體
2.4 實(shí)體管理器
2.4.1 獲取實(shí)體管理器
2.4.2 持久化實(shí)體
2.4.3 尋找實(shí)體
2.4.4 刪除實(shí)體
2.4.5 更新實(shí)體
2.4.6 事務(wù)
2.4.7 查詢
2.5 匯總
2.6 組裝
2.6.1 持久化單元
2.6.2 持久化存檔文件
2.7 本章小結(jié)
第3章 企業(yè)應(yīng)用程序
3.1 應(yīng)用程序組件模型
3.2 會(huì)話bean
3.2.1 無狀態(tài)會(huì)話bean
3.2.2 有狀態(tài)會(huì)話bean
3.2.3 單例會(huì)話bean
3.3 消息驅(qū)動(dòng)bean
3.4 servlet
3.5 依賴性管理
3.5.1 依賴性查找
3.5.2 依賴性注入
3.5.3 聲明依賴性
3.6 事務(wù)管理
3.6.1 事務(wù)概述
3.6.2 java中的企業(yè)事務(wù)
3.7 使用java ee組件
3.7.1 使用無狀態(tài)會(huì)話bean
3.7.2 使用有狀態(tài)會(huì)話bean
3.7.3 使用單例會(huì)話bean
3.7.4 使用消息驅(qū)動(dòng)bean
3.7.5 添加實(shí)體管理器
3.8 匯總
3.8.1 定義組件
3.8.2 定義用戶接口
3.8.3 組裝
3.9 本章小結(jié)
第4章 對(duì)象-關(guān)系映射
4.1 持久化注解
4.2 訪問實(shí)體狀態(tài)
4.2.1 字段訪問
4.2.2 屬性訪問
4.2.3 混合訪問
4.3 映射到表
4.4 映射簡(jiǎn)單類型
4.4.1 列映射
4.4.2 延遲提取
4.4.3 大型對(duì)象
4.4.4 枚舉類型
4.4.5 時(shí)間類型
4.4.6 瞬態(tài)
4.5 映射主鍵
4.5.1 重寫主鍵列
4.5.2 主鍵類型
4.5.3 標(biāo)識(shí)符生成
4.6 關(guān)系
4.6.1 關(guān)系概念
4.6.2 映射概述
4.6.3 單值關(guān)聯(lián)
4.6.4 集合值關(guān)聯(lián)
4.6.5 延遲關(guān)系
4.7 嵌入對(duì)象
4.8 本章小結(jié)
第5章 集合映射
5.1 關(guān)系和元素集合
5.2 使用不同的集合類型
5.2.1 set或者collection
5.2.2 list
5.2.3 map
5.2.4 重復(fù)
5.2.5 null值
5.3 最佳實(shí)踐
5.4 本章小結(jié)
第6章 實(shí)體管理器
6.1 持久化上下文
6.2 實(shí)體管理器
6.2.1 容器托管的實(shí)體管理器
6.2.2 應(yīng)用程序托管的實(shí)體管理器
6.3 事務(wù)管理
6.3.1 jta事務(wù)管理
6.3.2 資源本地的事務(wù)
6.3.3 事務(wù)回滾和實(shí)體狀態(tài)
6.4 選擇實(shí)體管理器
6.5 實(shí)體管理器操作
6.5.1 持久化實(shí)體
6.5.2 尋找實(shí)體
6.5.3 刪除實(shí)體
6.5.4 級(jí)聯(lián)操作
6.5.5 清除持久化上下文
6.6 與數(shù)據(jù)庫同步
6.7 分離和合并
6.7.1 分離
6.7.2 合并分離的實(shí)體
6.7.3 與分離實(shí)體一起工作
6.8 本章小結(jié)
第7章 使用查詢
7.1 java持久化查詢語言
7.1.1 入門
7.1.2 篩選結(jié)果
7.1.3 投影結(jié)果
7.1.4 實(shí)體之間的聯(lián)接
7.1.5 聚合查詢
7.1.6 查詢參數(shù)
7.2 定義查詢
7.2.1 動(dòng)態(tài)查詢定義
7.2.2 命名查詢定義
7.3 參數(shù)類型
7.4 執(zhí)行查詢
7.4.1 使用查詢結(jié)果
7.4.2 查詢分頁
7.4.3 查詢與未提交的更改
7.4.4 查詢超時(shí)
7.5 批量更新和刪除
7.5.1 使用批量更新和刪除
7.5.2 批量刪除和關(guān)系
7.6 查詢提示
7.7 查詢的最佳實(shí)踐
7.7.1 命名查詢
7.7.2 報(bào)告查詢
7.7.3 供應(yīng)商提示
7.7.4 無狀態(tài)會(huì)話bean
7.7.5 批量更新和刪除
7.7.6 提供程序的區(qū)別
7.8 本章小結(jié)
第8章 查詢語言
8.1 簡(jiǎn)介
8.1.1 術(shù)語
8.1.2 示例數(shù)據(jù)模型
8.1.3 示例應(yīng)用程序
8.2 選擇查詢
8.2.1 select子句
8.2.2 from 子句
8.2.3 where子句
8.2.4 標(biāo)量表達(dá)式
8.2.5 order by子句
8.3 聚合查詢
8.3.1 聚合函數(shù)
8.3.2 group by子句
8.3.3 having子句
8.4 更新查詢
8.5 刪除查詢
8.6 本章小結(jié)
第9章 條件api
9.1 概述
9.1.1 條件api
9.1.2 參數(shù)化類型
9.1.3 動(dòng)態(tài)查詢
9.2 構(gòu)建條件api查詢
9.2.1 創(chuàng)建查詢定義
9.2.2 基本結(jié)構(gòu)
9.2.3 條件對(duì)象和可變性
9.2.4 查詢根和路徑表達(dá)式
9.2.5 select子句
9.2.6 from子句
9.2.7 where子句
9.2.8 構(gòu)建表達(dá)式
9.2.9 order by子句
9.2.10 group by和having子句
9.3 強(qiáng)類型查詢定義
9.3.1 元模型api
9.3.2 強(qiáng)類型的api概述
9.3.3 規(guī)范化元模型
9.3.4 選擇正確的查詢類型
9.4 本章小結(jié)
第10章 高級(jí)對(duì)象-關(guān)系映射
10.1 表和列名
10.2 復(fù)雜的嵌入對(duì)象
10.2.1 高級(jí)嵌入映射
10.2.2 重寫嵌入關(guān)系
10.3 復(fù)合主鍵
10.3.1 id類
10.3.2 嵌入id類
10.4 派生標(biāo)識(shí)符
10.4.1 派生標(biāo)識(shí)符的基本規(guī)則
10.4.2 共享主鍵
10.4.3 多個(gè)映射特性
10.4.4 使用embeddedid
10.5 高級(jí)映射元素
10.5.1 只讀映射
10.5.2 可選性
10.6 高級(jí)關(guān)系
10.6.1 使用聯(lián)接表
10.6.2 避免聯(lián)接表
10.6.3 復(fù)合聯(lián)接列
10.6.4 孤兒刪除
10.6.5 映射關(guān)系狀態(tài)
10.7 多個(gè)表
10.8 繼承
10.8.1 類層次結(jié)構(gòu)
10.8.2 繼承模型
10.8.3 混合繼承
10.9 本章小結(jié)
第11章 高級(jí)主題
11.1 sql查詢
11.1.1 本地查詢與jdbc
11.1.2 定義和執(zhí)行sql查詢
11.1.3 sql結(jié)果集映射
11.1.4 參數(shù)綁定
11.2 生命周期回調(diào)
11.2.1 生命周期事件
11.2.2 回調(diào)方法
11.2.3 實(shí)體偵聽器
11.2.4 繼承和生命周期事件
11.3 驗(yàn)證
11.3.1 使用約束
11.3.2 調(diào)用驗(yàn)證
11.3.3 驗(yàn)證組
11.3.4 創(chuàng)建新的約束
11.3.5 jpa中的驗(yàn)證
11.3.6 啟用驗(yàn)證
11.3.7 設(shè)置生命周期的驗(yàn)證組
11.4 并發(fā)性
11.4.1 實(shí)體操作
11.4.2 實(shí)體訪問
11.5 刷新實(shí)體狀態(tài)
11.6 鎖定
11.6.1 樂觀鎖定
11.6.2 悲觀鎖定
11.7 緩存
11.7.1 通過層排序
11.7.2 共享緩存
11.8 utility類
11.8.1 persistenceutil
11.8.2 persistenceunitutil
11.9 本章小結(jié)
第12章 xml映射文件
12.1 元數(shù)據(jù)困惑
12.2 映射文件
12.2.1 禁用注解
12.2.2 持久化單元默認(rèn)值
12.2.3 映射文件默認(rèn)值
12.2.4 查詢和生成器
12.2.5 托管類和映射
12.3 本章小結(jié)
第13章 包裝和部署
13.1 配置持久化單元
13.1.1 持久化單元的名稱
13.1.2 事務(wù)類型
13.1.3 持久化提供程序
13.1.4 數(shù)據(jù)源
13.1.5 映射文件
13.1.6 托管類
13.1.7 共享緩存模式
13.1.8 驗(yàn)證架構(gòu)
13.1.9 添加供應(yīng)商屬性
13.2 構(gòu)建和部署
13.2.1 部署類路徑
13.2.2 包裝選項(xiàng)
13.2.3 持久化單元的范圍
13.3 服務(wù)器外部
13.3.1 配置持久化單元
13.3.2 在運(yùn)行時(shí)指定屬性
13.3.3 系統(tǒng)類路徑
13.4 架構(gòu)生成
13.4.1 唯一約束
13.4.2 null約束
13.4.3 基于字符串的列
13.4.4 浮點(diǎn)列
13.4.5 定義列
13.5 本章小結(jié)
第14章 測(cè)試
14.1 測(cè)試企業(yè)應(yīng)用程序
14.1.1 術(shù)語
14.1.2 在服務(wù)器外部測(cè)試
14.1.3 測(cè)試架構(gòu)
14.2 單元測(cè)試
14.2.1 測(cè)試實(shí)體
14.2.2 測(cè)試組件中的實(shí)體
14.2.3 單元測(cè)試中的實(shí)體管理器
14.3 集成測(cè)試
14.3.1 使用實(shí)體管理器
14.3.2 組件和持久化
14.4 最佳實(shí)踐
14.5 本章小結(jié)
第15章 遷移
15.1 從cmp實(shí)體bean遷移
15.1.1 劃定挑戰(zhàn)的范圍
15.1.2 實(shí)體bean轉(zhuǎn)換
15.2 從jdbc遷移
15.3 從其他的orm解決方案遷移
15.4 利用設(shè)計(jì)模式
15.4.1 傳輸對(duì)象
15.4.2 會(huì)話外觀
15.4.3 數(shù)據(jù)訪問對(duì)象
15.4.4 業(yè)務(wù)對(duì)象
15.4.5 快車道讀者
15.4.6 活動(dòng)記錄
15.5 本章小結(jié)
章節(jié)摘錄
版權(quán)頁:插圖:14.1,1術(shù)語每個(gè)人對(duì)于單元測(cè)試或者集成測(cè)試的組成部分的理解并不一致。事實(shí)上,對(duì)于一組開發(fā)人員的任何調(diào)查都將很可能會(huì)產(chǎn)生各種各樣的結(jié)果,有些結(jié)果在本質(zhì)上類似,而其他的則會(huì)涉及測(cè)試的完全不同的方面。因此,我們認(rèn)為定義用于測(cè)試的術(shù)語非常重要,從而使得您可以把它翻譯成任何您熟悉的術(shù)語。我們把測(cè)試分為下列4種類別。單元測(cè)試(Unit Test)。單元測(cè)試是由開發(fā)人員編寫的,側(cè)重于隔離的應(yīng)用程序組件。取決于您所采用的方法,它可能是一個(gè)單一類或類的集合。唯一關(guān)鍵的定義元素在于,單元測(cè)試不會(huì)與任何服務(wù)器資源耦合(把這些資源去掉通常是測(cè)試過程的一部分)并且執(zhí)行得非???。必須能夠從IDE中執(zhí)行單元測(cè)試的整個(gè)套件(suite),同時(shí)在幾秒鐘之內(nèi)得到結(jié)果。單元測(cè)試可以自動(dòng)執(zhí)行,當(dāng)它作為與配置管理系統(tǒng)每次合并的一部分時(shí),通常將它配置為自動(dòng)執(zhí)行。集成測(cè)試(Integration Test)。集成測(cè)試也是由開發(fā)人員編寫的,重點(diǎn)在于應(yīng)用程序中的用例。通常它們?nèi)匀慌c應(yīng)用服務(wù)器解耦合,但是單元測(cè)試和集成測(cè)試之間的區(qū)別在于集成測(cè)試充分利用了諸如數(shù)據(jù)庫等外部資源。實(shí)際上集成測(cè)試會(huì)從應(yīng)用程序獲得一個(gè)組件并隔離運(yùn)行,就像它仍然在應(yīng)用服務(wù)器中一樣。本地運(yùn)行測(cè)試將比駐留在應(yīng)用服務(wù)器中的測(cè)試速度更快,但是仍低于單元測(cè)試。集成測(cè)試也是自動(dòng)地執(zhí)行,通常至少每天會(huì)運(yùn)行一次,以確保不會(huì)因開發(fā)人員而引入回歸。功能測(cè)試(Functional Test)。功能測(cè)試是黑盒測(cè)試,由質(zhì)量工程師而不是開發(fā)人員對(duì)它進(jìn)行編寫和自動(dòng)執(zhí)行。質(zhì)量工程師檢查產(chǎn)品的功能規(guī)范和用戶界面,并尋找可以不用理解(或關(guān)注)應(yīng)用程序的實(shí)現(xiàn)方式而驗(yàn)證產(chǎn)品行為的自動(dòng)測(cè)試方法。功能測(cè)試是應(yīng)用程序開發(fā)過程的關(guān)鍵部分,但是把執(zhí)行這些測(cè)試作為開發(fā)人員日常工作的一部分是不現(xiàn)實(shí)的。通常會(huì)獨(dú)立于常規(guī)的開發(fā)過程,以不同的進(jìn)度安排來自動(dòng)地執(zhí)行這些測(cè)試?!を?yàn)收測(cè)試(Acceptance Test)。驗(yàn)收測(cè)試是客戶驅(qū)動(dòng)的(customer-driven)。這些測(cè)試(通常是手工進(jìn)行)直接由客戶或扮演客戶角色的代表來執(zhí)行。驗(yàn)收測(cè)試的目標(biāo)是為了驗(yàn)證應(yīng)用程序在用戶接口和行為方面是否滿足了客戶規(guī)定的需求。
媒體關(guān)注與評(píng)論
令人難以置信的是,自從初始的Java持久化API 1.0版本發(fā)布以來,已經(jīng)過去了三年。此間,我們目睹了它由成熟的API轉(zhuǎn)變成主流的持久化標(biāo)準(zhǔn)。與此同時(shí),許多讀者使用本書的上一個(gè)版本作為掌握J(rèn)PA的起點(diǎn),很高興我們?cè)诖诉^程中對(duì)您有所幫助!JPA 2.0包括了一系列新特性,例如,其他的對(duì)象關(guān)系映射、更靈活的對(duì)象建模、類型化查詢以及嶄新的條件API等。由于有很多內(nèi)容需要討論,因此我們很興奮能夠更新其內(nèi)容,解釋所有新特性,而且還包括了一些提示和技巧來幫助您在實(shí)踐中使用API。如果您已經(jīng)具備使用JPA 1.0的經(jīng)驗(yàn),那么應(yīng)該能夠從在JPA2.0中添加一個(gè)新特性時(shí)所指出的版本提示中獲益。這些提示旨在幫助用戶編寫一個(gè)JPA 1.0實(shí)現(xiàn),但還不能使用2.0特性。對(duì)于JPA新手來說,大可不必?fù)?dān)心會(huì)被遺忘。我們依然堅(jiān)持最初的意圖:把沒有任何JPA基礎(chǔ)的人訓(xùn)練成JPA高級(jí)開發(fā)人員。在《Pro JPA 2中文版:精通Java持久化API》的前兩章中,您應(yīng)該能夠快速掌握入門所需的知識(shí)(資深的JPA編程人員可以從第3章開始)。最后,我們要表示感謝,因?yàn)槭悄沟帽緯纳弦粋€(gè)版本如此成功。我們非常高興它已經(jīng)成為JPA開發(fā)人員的主要參考資源,希望您能夠發(fā)現(xiàn)《Pro JPA 2中文版:精通Java持久化API》具有同樣的價(jià)值?! 狹ike Keith(JPA2.0專家組成員)和Merrick Schincariol
編輯推薦
《Pro JPA2中文版:精通Java持久化API》:明確指導(dǎo)使用新的JPA 2創(chuàng)建健壯的,數(shù)據(jù)驅(qū)動(dòng)的應(yīng)用程序。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載