hibernate与ejb3.0哪个更好,以及他们的区别和联系

来源:百度知道 编辑:UC知道 时间:2024/06/30 15:14:52

EJB标准的当前版本没有提供ORM机制。但是,这种情况即将改变。下一版EJB标准(3.0)已经作为JSR(Java Specification Request)220开发出来了,其中包含EJB ORM标准。既然刚发布了Sun所支持的新标准,现在为什么要学习Hibernate呢?因为Hibernate最初的开发者们参与了标准的制定,而且作为最成功的ORM解决方案之一,Hibernate在很大程度上影响了EJB 3.0的设计。Hibernate将支持EJB 3.0中与ORM相关的部分。
EJB 3.0支持并鼓励对实体bean使用透明的持久化,而实体bean符合Hibernate对POJO的基本要求。因此,可以使用Hibernate作为EJB容器的EntityManager组件实现。
Hibernate的HQL(Hibernate Query Language)也与新的EJB QL(EJB Query Language)有密切的联系,这是因为这两种语言都源自SQL(Structured Query Language),而且Hibernate团队参与了EJB标准的制定。
EJB 3.0允许使用Hibernate支持的注解来描述实体/POJO与数据库之间的关系,由于这种方式非常简便,随着Java 5的普及,它将成为维护这些映射的标准方式。
Hibernate 3提供的特性超过了EJB 3.0标准的要求,而且Hibernate 3不要求使用应用服务器,因此适合那些没有使用完整J2EE栈的Swing应用程序、其他客户端应用程序和轻型Web应用程序(例如,在Tomcat上运行的应用程序)。
简而言之,如果现在用Hibernate 3编写应用程序,那么以后如果需要迁移到EJB 3.0,就可以很轻松地完成。目前,Hibernate 3已经可用了,而且具有优良的品质.