Hibernate3和EJB3.0 Entity Bean

开发 后端
这里介绍Gavin King对Hibernate3进行了简单的封装,将EJB 3.0 EntityBean API调用转换为内部Hibernate3自己的API,从而实现EJB3.0 EntityBean的兼容。

在向大家详细介绍Hibernate之前,首先让大家了解下Hibernate3,然后全面介绍EJB3.0 Entity Bean。

在Java世界,Hibernate是最引人关注的一个话题。从Gavin King加入EJB3.0 EG,负责制订EJB3.0的持久层规范;到Gavin King非正式退出JDO EG,并且充满个人情绪的攻击JDO2.0规范;到《Hibernate in Action》的发行;再到Hibernate3 Alpha的发布;最后再到最近JBoss 3.0 PR的发布(使用Hibernate3实现Entity Bean)。可以说这其中的每一步都引起业界的侧目。

Hibernate在不到3年的时间里,从一个不起眼的开源软件发展到今天令业界瞩目的主流O/R Mapping框架,Gavin King从一个开源软件的作者成为业界举足轻重的人物,这多少有些传奇的色彩。毕竟,单纯从技术成就而言,Hibernate不算是最有成就的Java开源框架软件,到目前为止也不是一个完美无缺的软件;从个人技术水平而言,Gavin King也不算绝顶高手。

在当前的Java持久层框架中,最流行的O/R Mapping产品分别是Hibernate,JDO和TopLink.

自从去年Gavin King加入JBoss之后,Hibernate已经由一个民间的开源软件走上了兼容EJB Entity Bean的道路。然而更加令人侧目的是,Gavin King在EJB3.0 EG中充当了一个非常重要的角色,只要对比一下EJB3.0 Entity Bean和Hibernate3,真相就会大白,虽然API接口不同,但是 Entity Bean的设计理念完全来自于Hibernate.

虽然EJB3.0 Entity Bean在相当程度上来源于Hibernate,但是毕竟是不同的API接口,因此Hibernate和EJB3.0 Entity Bean究竟是怎样的一种关系,是很多人心中的疑问。

2004 年四月份JBoss的Ben Wang访华期间,我曾经向Ben请教Hibernate的未来发展,他回答说,Hibernate未来将仍旧以独立的软件产品存在和发展,既可以 outside EJB container使用;同时Hibernate也将做为JBoss Entity Bean Implementation,又可以inside EJB container使用。然而如何既inside,又outside,终究缺乏一个感性的认识。

10月8日JBoss发布的 EJB3.0 PR揭开了答案。从Sourceforge的CVS服务器上面checkout出来源代码看一下,我们可以发现,Gavin King对Hibernate3进行了简单的封装,将EJB3.0 Entity Bean API调用转换为内部Hibernate3自己的API,从而实现EJB3.0 Entity Bean的兼容。

EJB3.0 不承诺脱离容器调用,如果你想享用EJB3.0,则必须运行在某个EJB Vendor提供的容器内,例如你使用JBoss提供的容器,那么你调用的是Entity Bean API,这些调用请求会被转换为Hibernate API的调用请求。这意味着Hibernate实际上提供了两套API:一套是Hibernate原生API;另一套是兼容EJB3.0 Entity Bean API.对于那些需要分布式调用支持,需要EJB容器的开发人员来说,他们选择后一套API;对于不需要EJB容器的开发人员来说,他们选择前一套 API.这就是Hibernate既定的发展策略。

【编辑推荐】

  1. 分析Hibernate插入操作
  2. 剖析Hibernate批量更新
  3. 全面讲解Hibernate二级缓存
  4. 讲述Hibernate核心接口
  5. 概括Hibernate批量处理
责任编辑:佚名 来源: IT168
相关推荐

2009-06-12 12:46:59

EJB3.0

2009-06-12 09:30:56

EJB3.0Spring+Hibe

2009-06-12 09:41:07

EJB3.0Spring

2009-06-15 16:06:25

JBoss IDE

2009-06-17 09:17:41

Hibernate3

2009-09-27 11:27:33

Hibernate3JBOSS 3.2

2009-09-25 11:04:32

Hibernate3实

2009-09-24 10:22:38

Hibernate3新

2009-06-24 15:53:08

Entity Bean多对多映射

2009-06-17 09:34:31

Hibernate3Hibernate2连接池

2009-06-24 15:51:47

Entity Bean一对多映射

2009-06-24 15:49:54

Entity Bean一对一映射

2009-06-22 16:59:33

POJOSpringEJB 3.0

2009-06-24 15:59:04

消息驱动Bean

2009-06-26 14:21:08

JDOEJB CMPHibernate

2009-06-26 15:17:44

SDOEJB 3.0

2009-06-10 11:42:26

Session BeaEclipse+JBo

2009-06-24 15:56:47

实体Bean连接策略

2009-09-22 11:30:57

2009-06-15 14:14:00

netbeans5.5开发hibernate
点赞
收藏

51CTO技术栈公众号