2011-03-30 58 views
0

我是一个开心的Tomcat用户,并且希望使用新的Java Persistence API。我有点困惑,我应该从哪里得到它?JPA如何与EJB相关Java EE 6

我没有找到关于我的问题的官方文件非常清楚。

  • Java EE 6是EJB容器特有的东西,比如JBoss或Glassfish?
  • 这是否意味着如果您有EE 6容器,它会自动支持JPA?
  • JPA是规范还是API?
  • Hibernate,Kodo还是OpenJPA,DataNucleus,EclipseLink,TopLink都实现了JPA规范?

我问的原因是因为我不想部署非常大的文件。如果我使用的容器支持/包含JPA API,那么我宁愿不在每个应用程序中部署一个?

我有这个想法在我的脑海里,Tomcat 7的JAR可能有它吗?

回答

3

Java EE 6是EJB容器特有的东西,比如JBoss或Glassfish?

Java EE 6是一个规范。关于如何实现这个规范是不可知论的,但通常这是由诸如你提到的两个应用服务器完成的。

这是否意味着如果您有EE 6容器,它会自动支持JPA?

是的。 JPA是JavaEE v5和v6的一部分。

JPA是规范还是API?

两者。规范定义了语义,API定义了语法。

Hibernate,Kodo还是OpenJPA,DataNucleus,EclipseLink,TopLink都实现了JPA规范?

是的。不同的appservers附带不同的JPA实现。

如果我正在使用的容器支持/包含JPA API,那么我宁愿不在每个应用程序中部署一个容器?

这是一般的想法。使用您的应用服务器提供的服务。

我有这个想法在我的脑海里,Tomcat 7的JAR可能有它吗?

我对v7并不熟悉,但Tomcat并不是一个完整的JavaEE实现(它提供了JSP,servlet和其他一些东西,比如JNDI),但不是JPA。如果您部署到Tomcat,您的应用程序将需要打包自己的JPA实现。