0

我的项目中有无状态实体 Beans(EJB 3.x) 和 EJB Beans(EJB 2.x) 和其他类。我想将实体 Bean 注入 EJB Bean。所以,到目前为止,我能够使用 JNDI 方式注入它,即 (BeanName#completename),但我想使用 @EJB 注入它,就像我们在另一个实体 bean 中注入实体 bean 而没有任何 JNDI 查找一样。这两个 bean 都是不同模块的一部分,但部署在同一台服务器上。我正在使用带有 eclipselink 的 weblogic。

4

2 回答 2

1

实体 bean 永远不会注入 EJB bean。您可以使用 EntityManager 对实体 bean 执行数据库操作。要使用数据库操作实体,必须与 EntityManager 持久化上下文相关联。所以你不能使用你的实体,直到它不处于持久状态。

所有事务范围的持久化上下文都是通过将 @PersistentContext 注入到 EntityManager 对象来配置的,就像这样,

@PersistenceContext(name="PersistentUnitName")
private EntityManager entityManager;
于 2013-10-02T07:49:21.267 回答
0

您使用的是 EJB 3 还是 EJB 2?EclipseLink 不支持 EJB 2 EntityBean,仅支持 EJB 3 实体。

您不能注入实体 bean,这没有意义,必须通过 EntityManager 从数据库中查询它们。您可以使用 @PersistenceContext 注入 EntityManager。

看,

http://en.wikibooks.org/wiki/Java_Persistence/Runtime#Java_Enterprise_Edition

于 2013-06-03T13:42:41.010 回答