dedecms织梦内容管理系统    
首页 | java | C/C++ | PHP | 操作系统 | ajax | 脚本编程 | 安全技术 | 本站下载页 | flex | CRM | 专题 | QQ群 | 测试中心 | 会员中心 | 积分规则
  当前位置:主页>java>文章内容
Hibernate已经落伍了吗?[2]
来源: 作者:
然而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的持久层框架都可以被我们拿来任意替换。

上一篇:Hibernate已经落伍了吗?(1)   下一篇:AOP及其在Spring中的应用
[收藏] [推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论
  热点文章
·java自学路线图
·JSP入门实例教程
·JUnit单元测试(2)
·JUnit单元测试(1)
·什么是Servlet
·用AJAX+J2EE实现网上会议室系统
·浅谈在Java语言中究竟是传值还是
·Java 5.0 多线程编程实践
·Java的文件 读和写
·构造器内部的多态方法的行为
·JSP常用内置对象使用说明
·对于JAVA基础测试中常见的异常问
  相关文章
·Hibernate已经落伍了吗?(1)
·AOP及其在Spring中的应用
·java删除文件及目录
·Struts+Spring+Hibernate
·J2EE 组件开发:什么是消息驱动
·一种简单的struts级连菜单实现方
·J2EE设计模式之用实体组件进行数
·jsfl与Flash的完美结合
·Java中的SOAP技术
·JSP和JSF合并 共同打造完美的Web
·Java与.NET 的Web Services相互
·JSP和JSF合并 共同打造完美的Web
  相关信息
copy right @ 百家拳软件项目研究室 2007 辽ICP备07011763