批判Java持久化架構
原文寫得很不錯,詳見:http://fromapitosolution.blogspot.com/2008/12/criticism-of-java-persistence.html。
現簡要翻譯如下:
大多數應用程式都是資料驅動的,需要能夠通路表、修改資料。盡管持久化架構還存在許多問題,我們在開發應用程式時還是很需要它。否則SQL代碼将分散到應用程式的各個角落,導緻應用程式的醜陋和不可管理性。
持久化架構建立了一個資料庫層,并分隔了原來與其相關的邏輯。Java持久化解決方案主要有兩個分支:
1)Java标準解決方案:JDBC、EJB、JDO。
2)其它ORM映射架構:Hibernate、Toplink、Enterprise Object Framework、iBatis等。
讓我們來問一個基本問題,每個人都該問問自己,“這裡還有其它的更簡單、更強大的解決方案嗎?”很多開發者都在嘗試解決這個問題,最近的一個就是Sun,Sun公司在嘗試簡化EJB。實際上,這就是為什麼新的架構層出不窮的原因。
Ibrahim Levent描述了Java持久化架構易犯的23個錯誤:
1)對象-關系比對問題未解決
2)架構不能滿足應用架構所需
3)XML被濫用
4)未利用資料庫中繼資料
5)對象查詢語言是一條錯誤的路線
6)不要抛出SQL異常,它不是敵人
7)多資料源的困境
8)為什麼持久化對象是如此虛弱?
9)貧乏的事務管理
10)沉重的對象緩存
11)錯誤的鎖方法
12)持久化API能更簡化
13)位元組碼操縱問題
14)表内不需要的對象ID(OID)列,主鍵列已有
15)繼承無意義
16)主鍵和外鍵伴随新類而建立導緻許多不需要的類
17)缺少叢集支援
18)缺少資料庫事件
19)缺少授權認證
20)缺少動态規則
21)缺少自動代碼生成的對象模型工具
22)缺少審計跟蹤
23)缺少持久化對象調試工具
文章不錯,詳詳細了解請看原文。