批判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)缺少持久化对象调试工具



文章不错,详详细了解请看原文。