【问题标题】:JDO with Java EE 6 (CDI and JTA?)JDO 与 Java EE 6(CDI 和 JTA?)
【发布时间】:2011-08-04 05:26:34
【问题描述】:

如果这是一个显而易见的问题,我深表歉意,但我正在阅读 Java EE 6 教程,同时阅读了几本书,并且很难将所有信息关联起来。

我在 JDO 和 JPA 之间做一个小比较。我知道使用 JPA 和应用程序服务器,我可以很容易地说:

@Stateless
public class MyEJB {

  @PersistenceContext
  private EntityManager em;

  // methods that use the JPA entity manager...
}

然后,在我自己的方法中,我可以使用em 来获取 JPA EntityManager。我编写的任何方法都会(默认情况下)自动创建或加入现有事务。

我希望在 JDO 中获得这么多的乐趣。我怀疑正确的答案是使用 CDI。我不确定那会是什么样子,也许是这个?

@Stateless
public class MyEJB {

  @Resource
  private PersistenceManager em;

  // methods that use the JDO persistence manager...
}

但这种猜测给我留下的问题多于答案。

  1. 如何告诉 Glassfish 或任何我的 Java EE 6 应用服务器,如何制作 PersistenceManagerFactory 以及如何使用它为我生成 PersistenceManager?
  2. 我必须做一些特别的事情来实现 JTA 吗?如果可能的话,我想使用容器管理的事务。
  3. 我可以将其设置为使用 JNDI 来查找我的 JDBC 连接吗?
  4. 是否需要存在魔法文件才能触发我想要的行为? (我在看你,空的persistence.xml)

除了对 JDO 和可能的 DataNucleus 直接施加依赖外,我宁愿将其保留为 Java EE 6,而不涉及 Spring 或其他第三方库,但我宁愿选择第三方库。

谢谢!

【问题讨论】:

    标签: java-ee-6 jdo cdi jta


    【解决方案1】:

    http://www.datanucleus.org/products/accessplatform_3_0/jdo/j2ee.html 涵盖了 Java EE 的许多方面,并提供了几个 Java EE 服务器的示例,包括 JBoss 7(最新规范)。这是一项贡献的努力,因为没有人使用所有这些服务器;如果您有详细信息要添加,请在 DataNucleus 论坛上发布它们,它们可以包含在内

    【讨论】:

    • 那么,从那个链接我认为这是您可以在 J2EE(EJB 2.1 等)下执行的操作,但尚未更新到 Java EE 5/6?如果您有时间并且可以扩展它和/或如何在 Java EE 6 下使用它,我将非常感激!谢谢!
    • “J2EE”(在 DN 文档页面上)是一个通用术语(适用于我们这些长期使用 Java 的人,无论 Sun/Oracle 将名称更改为什么)...杰伊。 JCA 和 JTA 包含在该页面中,它们仍然是该环境的一部分,并且是该页面所声称的。遗憾的是我没有时间更新它;这是针对他们正在使用的特定容器的用户贡献。 JBoss7 在那里
    • 啊,有人想对此投反对票。也许下次他们有勇气提及他们为什么这样做以及他们期待什么额外的信息。我说“也许”是因为我没想到
    • 我不能代表反对者(不是我),但回顾我的问题和你的回答,很明显我问的是 Java EE 6,以及你的回答是一个指向 EE 6 之前的文档的链接,并附有您没有时间更新文档的备注。
    • 好了,点赞!我需要知道这种方法是否也适用于 JPA。我正在尝试使用容器管理的持久性,但无法找到合适的方法。(使用 HBase)。有什么帮助吗?
    猜你喜欢
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2011-03-25
    • 2011-10-27
    • 1970-01-01
    相关资源
    最近更新 更多