亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java高手談論Hibernate的發展之路

2019-11-18 14:09:43
字體:
來源:轉載
供稿:網友

  在java世界,Hibernate是最引人關注的一個話題。從Gavin King加入EJB3.0 EG,負責制訂EJB3.0的持久層規范;到Gavin King非正式退出JDO EG,并且布滿個人情緒的攻擊JDO2.0規范;到《Hibernate in Action》的發行;再到Hibernate3 Alpha的發布;最后再到最近JBoss 3.0 PR的發布(使用Hibernate3實現Entity Bean)??梢哉f這其中的每一步都引起業界的側目。


Hibernate在不到3年的時間里,從一個不起眼的開源軟件發展到今天令業界矚目的主流O/R Mapping框架,Gavin King從一個開源軟件的作者成為業界舉足輕重的人物,這多少有些傳奇的色彩。究竟,單純從技術成就而言,Hibernate不算是最有成就的Java開源框架軟件,到目前為止也不是一個完美無缺的軟件;從個人技術水平而言,Gavin King也不算絕頂高手。


在當前的Java持久層框架中,最流行的O/R Mapping產品分別是Hibernate,JDO和TopLink。


自從去年Gavin King加入JBoss之后,Hibernate已經由一個民間的開源軟件走上了兼容EJB EntityBean的道路。然而更加令人側目的是,Gavin King在EJB3.0 EG中充當了一個非常重要的角色,只要對比一下EJB3.0的EntityBean和Hibernate3,真相就會大白,雖然API接口不同,但是 EntityBean的設計理念完全來自于Hibernate。


雖然EJB3.0的EntityBean在相當程度上來源于Hibernate,但是究竟是不同的API接口,因此Hibernate和EJB3.0 EntityBean究竟是怎樣的一種關系,是很多人心中的疑問。


2004年四月份JBoss的Ben Wang訪華期間,我曾經向Ben請教Hibernate的未來發展,他回答說,Hibernate未來將仍然以獨立的軟件產品存在和發展,既可以 outside EJB container使用;同時Hibernate也將做為JBoss EntityBean Implementation,又可以inside EJB container使用。然而如何既inside,又outside,終究缺乏一個感性的熟悉。


10月8日JBoss發布的EJB3.0 PR揭開了答案。從Sourceforge的CVS服務器上面checkout出來源代碼看一下,我們可以發現,Gavin King對Hibernate3進行了簡單的封裝,將EJB 3.0 EntityBean API調用轉換為內部Hibernate3自己的API,從而實現EJB3.0 EntityBean的兼容。


EJB3.0不承諾脫離容器調用,假如你想享用EJB3.0,則必須運行在某個EJB Vendor提供的容器內,例如你使用JBoss提供的容器,那么你調用的是EntityBean API,這些調用請求會被轉換為Hibernate API的調用請求。這意味著Hibernate實際上提供了兩套API:一套是Hibernate原生API;另一套是兼容EJB3.0 EntityBean API。對于那些需要分布式調用支持,需要EJB容器的開發人員來說,他們選擇后一套API;對于不需要EJB容器的開發人員來說,他們選擇前一套 API。這就是Hibernate既定的發展策略。


今年夏天投票通過的JDO2.0標準從某種程度而言,并不遜色于Hibernate當前的版本,有些功能甚至比Hibernate還要好,例如 JDO支持對類屬性的lazy loading,而Hibernate要到3才支持,當前Hibernate僅僅支持類的lazy loading。實際上在去年,就已經有很多用戶不斷提出對類屬性的lazy loading的需求,然而Gavin King當時一直不認為這個需求有添加的必要性。再例如被Gavin King形容為“可憎的”JDOQL,實際上是類SQL查詢語言和對象條件查詢的混合體。從功能上來說,不如HQL強大,但是比Hibernate自己的條件查詢強。


不知道究竟出于什么原因,Gavin King對JDO似乎一直懷有由衷的厭惡,5月,他在Hibernate的blog上面對JDO進行了毫不留情的批判,列舉了JDO的種種缺點來解釋為什么EJB3持久層規范沒有把JDO考慮進去。然而事實上他的批判布滿了對JDO的誤解和偏見,例如Gavin King憎恨JDOQL絲毫沒有什么非凡的理由,只因為JDOQL不是一個純粹的查詢語言,而是一個混合體,這多少讓人對Gavin King的風度感到遺憾。在被SolarMetric的Abe White反駁之后,同樣沒有風度的說,“我可沒有時間做這種無謂的爭論,事實上每個人都認為他自己的技術是最好的……我是錯了,JDO那伙人也錯了,每個人都會犯錯誤……”。(所以說人無完人阿?。?


JDO2規范的出臺事實上構成了對Hibernate,乃至基于Hibernate理念的EJB3.0 EntityBean的嚴重威脅。JDO1.0規范在功能上的嚴重缺失導致了JDO無力面對Hibernate和TopLink的競爭,然而功能基本完備的JDO2挾眾多JDO Vendor商業支持的合力,同時JDO規范可以避免產品鎖定在某個Vendor的優勢,已經將競爭的天平拉直。


然而JDO2和EJB3兩大商業主流標準的分裂,是大部分人,甚至包括廠商所不希望看到的。 于是最終EJB3的Lead Linda DeMichiel和JDO2的Lead Craig Russell聯名發表公開信,公布了一個合并EJB3和JDO2持久層規范的計劃,新的持久層規范將以JSR-220(EJB3.0)的持久層規范為基礎,融合JDO2的部分特性。新的持久層規范將進入J2EE1.5之中,獨立于EJB存在,既可以inside J2EE容器來使用,也可以脫離J2EE容器,獨立的運行。


這個新的持久層框架可以說完全是一個政治的產物。EJB Vendors出于自身利益反對JDO,使得JDO沒有辦法成為J2EE的一部分,然而標準的分裂也是大部分人更加不希望看到的,于是最終JDO成了政治斗爭的犧牲品。從表面上來看,JDO和EJB3.0 EntityBean都將被新的持久層框架取代,似乎JDO并沒有吃虧,但實際上JDO2標準已經成熟,部分JDO領導廠商的產品已經蓄始待發,而 EJB3.0 EntityBean還處于Early Draft,等待產品誕生至少也是一年之后的事情了;另外值得耐人尋味的是,新的持久層框架將基于當前EJB3.0 EntityBean,再結合JDO2的規范,并且將處于EJB3.0 EG的控制之下,再加入一些JDO2 EG的成員。因此可以看出來新的持久層框架無疑還是以EJB3.0 EG為主導進行制定的。


從長遠來看,EJB3和JDO2的政治斗爭對雙方都有好處,長期分裂帶來的后果對雙方的發展都不利,然而從短期來看,JDO2確實是在這場政治斗爭中敗下陣來。最直接的體現就是,已經有一些JDO的用戶對JDO的前景產生了動搖和迷茫,不少的JDO愛好者更是直言JDO將死。


TopLink是一個老牌的O/R Mapping軟件了,自從被Oracle收購之后,又增加了對Oracle數據庫的良好支持,和對Oracle AS EntityBean的支持。Oracle提供了TopLink的圖形設計環境,可以使得設計好的TopLink域模型既可以被單獨用在TopLink 中,也可以被用在EJB CMP中。因此看來TopLink也走了一條和Hibernate同樣策略的路。


TopLink的問題在于相比Hibernate的開源和免費的優勢來說,TopLink既不開源,售價又不菲上。本來商業軟件TopLink應該在技術支持和商業宣傳策略上擁有足夠的優勢,然而Oracle公司究竟是一個以數據庫為核心產品的公司,其他的一切產品都是為了數據庫銷售業績而服務的。在Oracle產品線中處于一個從屬地位的TopLink,由于先天不足,只能眼睜睜看著Hibernate的日益壯大而無所作為,因此 TopLink更多的被局限在購買了Oracle數據庫,并且綁定Oracle數據庫的用戶群體中。


J2EE1.5的新持久層規范將毫無懸念的成為未來持久層框架的主流API,無論是Hibernate,JDO,還是TopLink終將兼容這個主流商業API。在當前的這三種持久層API當中,Hibernate無疑是最有前途的。這是因為:


1、新的持久層規范將基于EJB3.0 EntityBean規范,這意味著仍將以Hibernate的設計理念為基礎

2、JBoss對EJB3.0規范跟隨的步伐非常緊密,在規范制定過程中就不斷的發布參考實現產品,因此可以對對EJB3.0規范產生比較大的影響力。


綜上所述,我們有理由對Hibernate的前途抱有強烈的信心。


最后的一個疑問是,既然J2EE1.5的新持久層框架可以脫離J2EE容器運行,那么大家不全部都去用Hibernate的后一套兼容API,而完全放棄Hibernate的原生API了嗎?那么是否意味著Hibernate做為一個獨立產品的使命徹底終結呢?


對于這個問題我的看法是:J2EE1.5的持久層規范要綜合各個EJB Vendor,JDO Vendor的意見,要平衡他們之間的利益得失,那么這樣一個瞻前顧后的規范必然無法覆蓋所有應用場合的全面需要,這不像Hibernate的原生API 可以隨時根據開發人員的要求增加功能那么靈活。因此我預計Hibernate的原生API以其更加強大的功能仍然會吸引一大批人直接使用原生API,而不是兼容J2EE規范的API。


總而言之,對于我們當前的持久層開發來說,最好的辦法莫過于堅定的使用DAO層來隔離持久層和業務層邏輯,那么不管未來持久層風云如何變換,但凡基于POJO的持久層框架都可以被我們拿來任意替換。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久精品一区中文字幕| 97国产精品人人爽人人做| 欧美孕妇毛茸茸xxxx| 久久人人爽人人| 亚洲精品成人久久久| 精品视频在线播放| 欧美日韩国产成人在线| 亚洲精品小视频| 亚洲bt欧美bt日本bt| 日韩国产欧美精品在线| 国产视频精品va久久久久久| 午夜精品久久久久久久白皮肤| 国产精品一区二区久久久| 精品国产一区二区三区久久| 2019亚洲日韩新视频| 欧美精品免费看| 国产婷婷成人久久av免费高清| 97av在线视频免费播放| 中文字幕一区二区精品| 日韩精品视频免费| 亚洲变态欧美另类捆绑| 日韩免费在线视频| 国产精品专区第二| 欧美富婆性猛交| 91av中文字幕| 亚洲一区第一页| 国产999视频| 欧美激情视频在线免费观看 欧美视频免费一| 中文字幕亚洲综合| 国产精品国模在线| 51ⅴ精品国产91久久久久久| 亚洲第一页中文字幕| 国产欧美精品日韩| 国产精品中文久久久久久久| 欧美在线播放视频| 欧美有码在线观看| 欧美尺度大的性做爰视频| 国产精品入口福利| 国产精品九九久久久久久久| 久久精品国产久精国产思思| 日韩高清免费在线| 亚洲一级一级97网| 国产精品白丝jk喷水视频一区| 精品中文字幕久久久久久| 午夜精品理论片| 欧美成人手机在线| 久久久之久亚州精品露出| 91国语精品自产拍在线观看性色| 国产精品免费在线免费| 亚洲色图av在线| 欧美激情欧美激情在线五月| 亚洲欧美制服第一页| 欧美激情视频三区| 福利一区福利二区微拍刺激| 91天堂在线视频| 亚洲国产成人精品电影| 日韩av在线免费播放| 日韩av日韩在线观看| 在线观看日韩视频| 红桃视频成人在线观看| 国产精品久久久久久五月尺| 国产精品一区二区三区毛片淫片| 欧美精品18videos性欧美| 国产精品美女主播在线观看纯欲| 日本久久久久久久| 国产91精品不卡视频| 91tv亚洲精品香蕉国产一区7ujn| 日韩av免费看网站| 成人久久一区二区| 亚洲伊人第一页| 亚洲福利视频专区| 欧美黄网免费在线观看| 久久精品国产久精国产一老狼| 久久久久国产精品免费| 亚洲成人精品久久久| 日韩av网站导航| 欧亚精品在线观看| 国语自产精品视频在线看抢先版图片| 性日韩欧美在线视频| 国产99久久精品一区二区| 欧美成人免费全部观看天天性色| 亚洲网站视频福利| 国产福利精品视频| 91在线免费看网站| 欧美激情精品在线| 亚洲韩国欧洲国产日产av| 国产日韩av高清| 国产精品极品美女在线观看免费| 欧美国产日韩一区二区| 国产偷国产偷亚洲清高网站| 亚洲综合第一页| 91热福利电影| 国产日本欧美一区二区三区在线| 精品国产一区二区三区久久狼黑人| 亚洲黄色av女优在线观看| 国产成人aa精品一区在线播放| 亚洲欧美一区二区三区四区| 最近2019年日本中文免费字幕| 国产美女扒开尿口久久久| 国产精品∨欧美精品v日韩精品| 欧美性猛交xxxx免费看漫画| 欧美精品久久久久久久免费观看| 久久精品国产2020观看福利| 永久免费毛片在线播放不卡| 日韩精品免费在线| 日韩精品免费综合视频在线播放| 欧美国产精品人人做人人爱| 一区二区三区国产在线观看| 日韩欧美亚洲一二三区| 综合网中文字幕| 欧美巨大黑人极品精男| 欧美精品一本久久男人的天堂| 日韩电影大全免费观看2023年上| 亚洲精品ady| 黄色一区二区三区| 国产91热爆ts人妖在线| 91精品久久久久久久久久入口| 在线观看欧美www| 国产精品日韩在线播放| 日韩精品视频在线| 国产精品电影在线观看| 欧美丝袜第一区| 国产精品久久久久久久久免费看| 精品中文字幕久久久久久| 欧美综合在线观看| 最新亚洲国产精品| 九九热视频这里只有精品| 蜜臀久久99精品久久久无需会员| 国产精品久久久久久久久男| 精品亚洲国产成av人片传媒| 亚洲精品成a人在线观看| 久久影视电视剧凤归四时歌| 伊人亚洲福利一区二区三区| 日韩av在线影视| 欧美激情a在线| 成人中心免费视频| 亚洲高清免费观看高清完整版| 91国自产精品中文字幕亚洲| 久久久久久久久久久免费精品| 91成人在线观看国产| 欧美性猛交xxxx免费看久久久| 国产日韩中文字幕在线| 97视频在线观看成人| 欧美激情国内偷拍| 久久久久久有精品国产| 欧洲成人在线视频| 欧美激情高清视频| 久久久久日韩精品久久久男男| 国产午夜精品一区理论片飘花| 国产欧美亚洲精品| 中文字幕亚洲综合久久筱田步美| 九九热这里只有精品免费看| 亚洲精品98久久久久久中文字幕| 亚洲国产中文字幕在线观看| 日韩有码在线视频| 一区二区三区视频观看| 国模精品一区二区三区色天香| 中文字幕亚洲综合| 亚洲国产日韩欧美综合久久| 欧美福利视频在线观看| 日韩电影免费在线观看中文字幕| 国产精品三级在线| 亚洲自拍偷拍福利| 国产精品视频地址|