我的项目中有无状态实体bean (EJB 3.x)和EJB bean (EJB 2.x)和其他类。我想把实体Bean注入到EJB Bean中。因此,到目前为止,我能够使用JNDI方式注入它,即(BeanName#completename),但我想使用@EJB注入它,就像我们在没有任何JNDI查找的情况下在另一个实体bean中注入实体bean一样。这两个bean是不同模块的一部分,但部署在同一台服务器上。我使用weblogic与eclipselink。
实体bean永远不会注入到EJB bean中。您可以使用EntityManager对实体bean执行DB操作。要使用数据库操作实体,必须与EntityManager持久性上下文相关联。所以你不能使用你的实体,直到它不是在持久化状态。
所有事务作用域的持久化上下文都是通过向EntityManager对象注入@PersistentContext来配置的,像这样,
@PersistenceContext(name="PersistentUnitName")
private EntityManager entityManager;
您是使用EJB 3还是EJB 2?EclipseLink不支持EJB 2 EntityBean,只支持EJB 3 Entities。
您不能注入Entity bean,这没有意义,它们必须通过EntityManager从数据库查询。你可以使用@PersistenceContext注入EntityManager。
,
http://en.wikibooks.org/wiki/Java_Persistence/Runtime Java_Enterprise_Edition