【问题标题】:JPA and DAO implementation under GlassFish 3.1GlassFish 3.1 下的 JPA 和 DAO 实现
【发布时间】:2012-04-03 08:32:47
【问题描述】:

我的应用程序正在使用JPA 并部署在GlassFish 3.1 下(因此使用EclipseLink)。它工作正常,但我现在正在尝试使用 DAO 实现。

我找到that article。但它似乎不适用于持久性上下文的注入。所以示意性地我有一个实体类,一个无状态的EJB 类和一个persistence.xml 文件。在我的 EJB 中有一个 @PersistenceContext(name=...) 注释。这样它就可以工作了。

现在我添加一个 DAO 接口和一个 JPA DAO 类(实现接口)。在我的 JPA DAO 中,我试图注入持久性上下文,但它不起作用。没有例外,但仍然为空。

我该怎么办?

如果使用 GlassFish 无法做到这一点,我的第一个想法是将实体管理器传递给 DAO。它正在工作,但它“不错”吗?

第二个想法,像无状态bean一样实现JPA DAO并将其注入我的EJB中。它也可以工作,但是......?这是个好主意吗?

【问题讨论】:

  • 花一点时间确保您已接受问题的答案:meta.stackexchange.com/questions/16721/…
  • ??你的意思是其他问题?好的,但是如果没有答案或答案没有回答我的问题,则无法接受答案。

标签: jakarta-ee jpa-2.0 glassfish-3


【解决方案1】:

除非对象由容器管理,否则不能注入 PersistenceContext。它必须是@Stateless@Singleton 或类似的东西。您还可以使用CDI (JSR-299) 使 bean 容器管理并使注入工作。或者你可以使用 Spring,就像你提到的那篇文章一样。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-12-27
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 2011-01-30
  • 2019-10-28
  • 2017-12-17
  • 1970-01-01
相关资源
最近更新 更多