知识大全 Hibernate已经落伍了吗

Posted 软件

篇首语:不担三分险,难练一身胆。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Hibernate已经落伍了吗相关的知识,希望对你有一定的参考价值。

Hibernate已经落伍了吗?[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    在Java世界 Hibernate是最引人关注的一个话题 从Gavin King加入EJB EG 负责制订EJB 的持久层规范 到Gavin King非正式退出JDO EG 并且充满个人情绪的攻击JDO 规范 到《Hibernate in Action》的发行 再到Hibernate Alpha的发布 最后再到最近JBoss PR的发布(使用Hibernate 实现Entity Bean) 可以说这其中的每一步都引起业界的侧目     Hibernate在不到 年的时间里 从一个不起眼的开源软件发展到今天令业界瞩目的主流O/R Mapping框架 Gavin King从一个开源软件的作者成为业界举足轻重的人物 这多少有些传奇的色彩 毕竟 单纯从技术成就而言 Hibernate不算是最有成就的Java开源框架软件 到目前为止也不是一个完美无缺的软件 从个人技术水平而言 Gavin King也不算绝顶高手     在当前的Java持久层框架中 最流行的O/R Mapping产品分别是Hibernate JDO和TopLink     自从去年Gavin King加入JBoss之后 Hibernate已经由一个民间的开源软件走上了兼容EJB EntityBean的道路 然而更加令人侧目的是 Gavin King在EJB EG中充当了一个非常重要的角色 只要对比一下EJB 的EntityBean和Hibernate 真相就会大白 虽然API接口不同 但是 EntityBean的设计理念完全来自于Hibernate     虽然EJB 的EntityBean在相当程度上来源于Hibernate 但是毕竟是不同的API接口 因此Hibernate和EJB EntityBean究竟是怎样的一种关系 是很多人心中的疑问     年四月份JBoss的Ben Wang访华期间 我曾经向Ben请教Hibernate的未来发展 他回答说 Hibernate未来将仍旧以独立的软件产品存在和发展 既可以 outside EJB container使用 同时Hibernate也将做为JBoss EntityBean Implementation 又可以inside EJB container使用 然而如何既inside 又outside 终究缺乏一个感性的认识     月 日JBoss发布的 EJB PR揭开了答案 从Sourcefe的CVS服务器上面checkout出来源代码看一下 我们可以发现 Gavin King对Hibernate 进行了简单的封装 将EJB EntityBean API调用转换为内部Hibernate 自己的API 从而实现EJB EntityBean的兼容     EJB 不承诺脱离容器调用 如果你想享用EJB 则必须运行在某个EJB Vendor提供的容器内 例如你使用JBoss提供的容器 那么你调用的是EntityBean API 这些调用请求会被转换为Hibernate API的调用请求 这意味着Hibernate实际上提供了两套API 一套是Hibernate原生API 另一套是兼容EJB EntityBean API 对于那些需要分布式调用支持 需要EJB容器的开发人员来说 他们选择后一套API 对于不需要EJB容器的开发人员来说 他们选择前一套 API 这就是Hibernate既定的发展策略     今年夏天投票通过的JDO 标准从某种程度而言 并不逊色于 Hibernate当前的版本 有些功能甚至比Hibernate还要好 例如 JDO支持对类属性的lazy loading 而Hibernate要到 才支持 当前Hibernate仅仅支持类的lazy loading 实际上在去年 就已经有很多用户不断提出对类属性的lazy loading的需求 然而Gavin King当时一直不认为这个需求有添加的必要性 再例如被Gavin King形容为 可憎的 JDOQL 实际上是类SQL查询语言和对象条件查询的混合体 从功能上来说 不如HQL强大 但是比Hibernate自己的条件查询强     不知道究竟出于什么原因 Gavin King对JDO似乎一直怀有由衷的厌恶 月 他在Hibernate的blog上面对JDO进行了毫不留情的批判 列举了JDO的种种缺点来解释为什么EJB 持久层规范没有把JDO考虑进去 然而事实上他的批判充满了对JDO的误解和偏见 例如Gavin King憎恨JDOQL丝毫没有什么特别的理由 只因为JDOQL不是一个纯粹的查询语言 而是一个混合体 这多少让人对Gavin King的风度感到遗憾 在被SolarMetric的Abe White反驳之后 同样没有风度的说 我可没有时间做这种无谓的争论 事实上每个人都认为他自己的技术是最好的……我是错了 JDO那伙人也错了 每个人都会犯错误…… (所以说人无完人!)    JDO 规范的出台事实上构成了对Hibernate 乃至基于 Hibernate理念的EJB EntityBean的严重威胁 JDO 规范在功能上的严重缺失导致了JDO无力面对Hibernate和TopLink的竞争 然而功能基本完备的JDO 挟众多JDO Vendor商业支持的合力 同时JDO规范可以避免产品锁定在某个Vendor的优势 已经将竞争的天平拉直 cha138/Article/program/Java/ky/201311/29133

相关参考

知识大全 Hibernate已经落伍了吗

Hibernate已经落伍了吗?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在Java世界H

知识大全 苹果七出了 苹果六就要被淘汰了吗 用苹果六是不是落伍了 大部分人也会淘汰六换7吗

苹果七出了苹果六就要被淘汰了吗用苹果六是不是落伍了大部分人也会淘汰六换7吗话不能这么说,iPhone7的系统有很多bug,就算bug修复,但质体感也好不到哪去!iPhone6也算是iPhone系列里的

知识大全 (1)我已经道歉了.(2)我不是已经道歉了吗?这两句话的语气有什么不同

(1)我已经道歉了.(2)我不是已经道歉了吗?这两句话的语气有什么不同第一个很正式,认真的总结性的诉说第二个反诘口气,有推脱,抵制的情绪我不是已经道歉了吗?(改句子,意思不变)可改为陈述句:我已经道歉

知识大全 早上收到短信说本人农行信用卡尾号多少已经由中国邮政挂号寄出,是已经发卡了吗,多长时间能拿到

早上收到短信说本人农行信用卡尾号多少已经由中国邮政挂号寄出,是已经发卡了吗,多长时间能拿到?谢谢!已经审核通过制卡成功开始邮寄了如果确定已经有邮政揽件那么最迟国内三天可到根据单号关注物流状态,保持手机

知识大全 ADO.NET实体框架已经准备好面向企业级应用了吗

ADO.NET实体框架已经准备好面向企业级应用了吗?  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

人类已经无法阻止顽固的白癜风了吗

白癜风在世界上属比较难治的皮肤类疾病,这是公认的。白癜风是一类黑色素脱失性的皮肤病,虽然对患者身体不会造成损害,但却对白癜风患者外貌美观有着严重影响。致使白癜风患者无论是在生活还是工作中都带来了诸多不

人类已经无法阻止顽固的白癜风了吗

白癜风在世界上属比较难治的皮肤类疾病,这是公认的。白癜风是一类黑色素脱失性的皮肤病,虽然对患者身体不会造成损害,但却对白癜风患者外貌美观有着严重影响。致使白癜风患者无论是在生活还是工作中都带来了诸多不

知识大全 朝鲜半岛的2个国家朝鲜和韩国都已经实现共产主义了吗?

朝鲜半岛的2个国家朝鲜和韩国都已经实现共产主义了吗?当然没有共产主义是通过消灭生产资料私人占有制,去消除社会隔阂和阶级,以把全人类从压迫和贫困中解放的思想,并建立没有阶级制度、没有生产资料私有制、没有

知识大全 这话是表示他后悔了吗现在,还是他对我已经不再有感情了

吵架的时候他说他当初怎么会看上我了呢!这话是表示他后悔了吗现在,还是他对我已经不再有感情了?这句话不是他后悔了,而是没有以前的挑战性了,你可能没有给他很多考验,男人只要一得到了,就会容易失去兴趣的,而

知识大全 我还没去税局抄税,但已经把数据抄到了IC卡里了。这样也不能作废了吗

我还没去税局抄税,但已经把数据抄到了IC卡里了。这样也不能作废了吗?  以下文字资料是由(本站网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一