繁体   English   中英

JPA / EJB3关系

[英]JPA/EJB3 Relationship

我一直在阅读有关JPA和EJB3的信息,并想确认我对它们之间关系的理解是正确的。 这就是我想知道的...

JPA是已经由许多供应商实施的规范,其中包括:

  • JBoss /休眠
  • Oracle / TopLink Essentials(现在为EclipseLink)
  • 阿帕奇/ OpenJPA

EJB3是在应用服务器中实现的规范,包括:

  • 玻璃鱼
  • 老板

它是否正确?

Java EE 5中引入的Java Persistence API是EJB 3的子集,并替代了EJB 2.0 CMP的持久性解决方案。 JPA 1.0已被定义为EJB 3.0规范( JSR 220 )的一部分,但可以在EJB容器之外和之外使用。 在Java EE 6中,JPA 2.0在EJB 3.1规范( JSR 318 )之外有其单独的规范( JSR 317 )。 总结一下:

  • JPA是EJB 3的子集,其实现由诸如Toplink Essentials / EclipseLink,Hibernate,Kodo / OpenJPA的持久性提供程序提供 (Kodo是OpenJPA源代码的来源项目,而Kodo现在又基于OpenJPA)等

  • EJB 3是更广泛的规范,由依赖于持久性提供程序的应用程序服务器的EJB容器提供了实现:

    • GlassFish v3的默认持久性提供程序是EclipseLink。
    • JBoss的默认持久性提供程序是Hibernate
    • WebLogic 10.3.1+的默认持久性提供程序是OpenJPA / Kodo或EclipseLink
    • WebSphere 6.1+的默认持久性提供程序是(基于)OpenJPA

是的, DataNucleus也实现了JPA1和JPA2,它还实现了JDO1,JDO2,JDO3以及OGC简单功能规范。 并且也是唯一真正独立的实现(与大型软件供应商无关)。 显然,用户可以随意将其希望的任何JPA实现插入其EJB3环境中。

是的,我也使用过Google OpenJPA,但这是正确的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM