当前位置: 首页 > 知识库问答 >
问题:

使用@EJB向EJB Bean注入实体Bean

韶镜
2023-03-14

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

共有2个答案

慕容俭
2023-03-14

您使用的是EJB3还是EJB2?EclipseLink不支持EJB2实体Bean,只支持EJB3实体。

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

看见

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

章鸿光
2023-03-14

实体bean从来都不是EJB bean中的注入。可以使用EntityManager在实体bean上执行DB操作。要使用数据库操作,实体必须与EntityManager持久性上下文相关联。因此,在实体不处于持久性状态之前,您无法使用它。

所有事务范围的持久性上下文都是通过向EntityManager对象注入@PersistentContext来配置的,如下所示,

@PersistenceContext(name="PersistentUnitName")
private EntityManager entityManager;
 类似资料:
  • 看完这些,, 在哪里使用EJB3.1和CDI 下面的事情我还不明白,如果我错了,请纠正我。 与bean在同一个包中的所有类。xml是CDIBean,除了注释为session/message/singleton的类之外 非常感谢。:)

  • 问题内容: 使用新的EJB 3.1规范,是否可以将EJB注入pojo?我知道在EJB 3.0中,@ EJB批注可用于注入EJB,但这不适用于简单的pojos。 如果不是,我必须在JNDI中查找bean,因为我知道您不能简单地使用new关键字。 问题答案: 是的,使用JNDI查找。 由于您的POJO是由您创建的(我假设),因此容器不负责注入依赖项。

  • jboss日志:- JBAS015876:开始部署“medmark.war”17:33:56948 INFO[org.jboss.as.ejb3.deployment.processors.ejbndibingsdeploymentunitprocessor](MSC服务线程1-8)部署单元部署“medmark.war”中名为HelloService的会话bean的JNDI绑定如下: EJB类:

  • 问题内容: 我的配置是:Wildfly 8.2.0,焊接 是否可以在bean中而不是在CDI中的接口中注入bean? 问题答案: 是的,可以,但是当EJB注入业务视图时,您要公开的唯一业务视图是该视图,该视图是实现接口(在您的情况下是本地业务接口)时的默认视图。因此,如果要注入bean本身,则需要告诉容器您正在使用无接口视图。 在您的示例中,如果仍然要实现接口并进行注入,则应使用注释,这意味着Be

  • 问题内容: 我已经用spring和spring security开发了一个简化的Web应用程序…现在,我想添加ejb模块来进行数据库访问,我在Internet上查找,但是由于它是我第一次使用EJB,所以我没有找到明确的东西。我想在控制器中使用类似@EJB之类的东西” 以及在有教程或其他帮助的情况下如何在Spring上下文中对其进行配置。很好,谢谢 问题答案: 要将ejb 3 bean注入sprin

  • 我已经编写了一个EJB3业务逻辑并部署在GlassFish下。现在,我将通过同一个容器中的客户机,用@EJB注入接口来测试它。 数据源bean是一个在构造函数中设置连接并通过get()方法释放的无状态bean