EJB和JPA如何相关?

Luc*_*uke 17 java jpa java-ee ejb-3.0

我正在阅读动态书中的EJB 3,我有以下问题:
您是否使用@Entity编写和注释POJO,以及EJB实体类型?

我不明白JPA与EJB有什么关系.JPA现在不是一个自己的规范吗?实体也包含在自己的持久性容器中.他们谈论EJB 3 Java Persistence API等,但我不明白实体与EJB有什么关系.

JB *_*zet 17

JPA旨在取代EJB2实体bean,并且已作为EJB3规范的一部分启动.

由于在EJB容器之外也使用JPA是有意义的,它现在有自己的规范,但它仍然与EJB3相关,因为兼容的EJB3容器必须提供JPA实现,该实现集成到容器的事务处理中.


Pau*_*son 9

在EJB规范的2.1版之前,实体bean类必须实现javax.ejb.EntityBean接口并为样板方法提供实现,例如ejbLoad,ejbStore,ejbActivate和ejbPassivate.

EJB 3.0采用了JPA规范.实体bean的概念被更简单的JPA实体概念所取代.要创建此类实体,不需要任何接口实现或样板方法.实体是具有@Entity注释的POJO .

因此,实际上,从EJB 3开始,Java EE应用程序中"实体bean"EJB的使用已经死亡(在JPA下).