然而JDO
和EJB
兩大商業主流標准的分裂
是大部分人
甚至包括廠商所不希望看到的
於是最終EJB
的Lead Linda DeMichiel和JDO
的Lead Craig Russell聯名發表公開信
宣布了一個合並EJB
和JDO
持久層規范的計劃
新的持久層規范將以JSR
(EJB
)的持久層規范為基礎
融合JDO
的部分特性
新的持久層規范將進入J
EE
之中
獨立於EJB存在
既可以inside J
EE容器來使用
也可以脫離J
EE容器
獨立的運行
這個新的持久層框架可以說完全是一個政治的產物
EJB Vendors出於自身利益反對JDO
使得JDO沒有辦法成為J
EE的一部分
然而標准的分裂也是大部分人更加不希望看到的
於是最終JDO成了政治斗爭的犧牲品
從表面上來看
JDO和EJB
EntityBean都將被新的持久層框架取代
似乎JDO並沒有吃虧
但實際上JDO
標准已經成熟
部分JDO領導廠商的產品已經蓄始待發
而 EJB
EntityBean還處於Early Draft
等待產品誕生至少也是一年之後的事情了
另外值得耐人尋味的是
新的持久層框架將基於當前EJB
EntityBean
再結合JDO
的規范
並且將處於EJB
EG的控制之下
再加入一些JDO
EG的成員
因此可以看出來新的持久層框架無疑還是以EJB
EG為主導進行制定的
從長遠來看
EJB
和JDO
的政治斗爭對雙方都有好處
長期分裂帶來的後果對雙方的發展都不利
然而從短期來看
JDO
確實是在這場政治斗爭中敗下陣來
最直接的體現就是
已經有一些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數據庫的用戶群體中
J
EE
的新持久層規范將毫無懸念的成為未來持久層框架的主流API
無論是Hibernate
JDO
還是TopLink終將兼容這個主流商業API
在當前的這三種持久層API當中
Hibernate無疑是最有前途的
這是因為
新的持久層規范將基於EJB
EntityBean規范
這意味著仍將以Hibernate的設計理念為基礎
JBoss對EJB
規范跟隨的步伐非常緊密
在規范制定過程中就不斷的發布參考實現產品
因此可以對對EJB
規范產生比較大的影響力
綜上所述
我們有理由對Hibernate的前途抱有強烈的信心
最後的一個疑問是
既然J
EE
的新持久層框架可以脫離J
EE容器運行
那麼大家不全部都去用Hibernate的後一套兼容API
而完全放棄Hibernate的原生API了嗎?那麼是否意味著Hibernate做為一個獨立產品的使命徹底終結呢?
對於這個問題我的看法是
J
EE
的持久層規范要綜合各個EJB Vendor
JDO Vendor的意見
要平衡他們之間的利益得失
那麼這樣一個瞻前顧後的規范必然無法覆蓋所有應用場合的全面需要
這不像Hibernate的原生API 可以隨時根據開發人員的要求增加功能那麼靈活
因此我預計Hibernate的原生API以其更加強大的功能仍然會吸引一大批人直接使用原生API
而不是兼容J
EE規范的API
總而言之
對於我們當前的持久層開發來說
最好的辦法莫過於堅定的使用DAO層來隔離持久層和業務層邏輯
那麼不管未來持久層風雲如何變換
但凡基於POJO的持久層框架都可以被我們拿來任意替換
[] []
From:http://tw.wingwit.com/Article/program/Java/ky/201311/29132.html