批判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)缺少持久化对象调试工具
文章不错,详详细了解请看原文。