10

如何使用 Java EE 6 将 EJB 注入到域对象(JPA 实体)中?

4

3 回答 3

11

在 Java EE 6 中,CDI 将托管组件的概念扩展到任何东西,并且可以将 EJB 注入到 CDI 托管 bean 中(使用@Inject注解)。但是,虽然已经考虑了 JPA 和 CDI 之间的交互,但这还没有成为 Java EE 6 规范的一部分。换句话说,无法注入到 JPA 实体中。

也可以看看

于 2010-08-14T15:18:56.257 回答
4

EJB3 客户端注入适用于“托管类”,例如 Servlet 和 EJB(以及 JSF 页面代码等)。

我相信 JPA 对象不是在这个意义上进行管理的。所以我认为你会回到 EJB3 之前的技术,做 JNDI 查找等。

但是,正如已经观察到的那样,如果您需要这样做,您的职责层次结构可能会有些混乱。如果您发布有关您的整体设计的问题,以便我们可以考虑设计问题,那将会很有趣。我的默认立场是 EJB 使用 JPA 域对象,JPA 对象不使用 EJB。

于 2010-01-08T09:59:07.823 回答
1

您通常不会仅仅因为域对象来自数据库而不是容器而这样做,因此注入服务并不那么直接。

然而,这并不意味着您不应该这样做。

您知道您的系统要实现什么以及它与哪些其他系统交互。这些知识将影响我想象的决定。

请参阅活动记录链接。正如我在评论中的意思,通常小型系统会选择这条路线。

于 2010-01-08T10:37:38.933 回答