【问题标题】:Can JPA 2.0 be used without JavaEE 6?可以在没有 JavaEE 6 的情况下使用 JPA 2.0 吗?
【发布时间】:2012-02-23 18:46:48
【问题描述】:

我正在使用 OpenJPA 2.1(实现 JPA 2.0)作为命令行实用程序。我正在使用 JPA 2.0 的新类。 我的编译目标是 Java SE 1.6

OpenJPA 2.1 附带所有 JPA 2.0 javax.persistence.* 接口/实现。

我能否声称我的实用程序不依赖于 JavaEE 6

我的理解是 JavaEE 6 是标准的集合。因此,在这方面,它与任何其他随机标准没有什么不同。因此 JavaEE 6 依赖于 JPA 2.0,但 JPA 2.0 不依赖于 JavaEE 6,对吗? p>

【问题讨论】:

    标签: java jakarta-ee jpa-2.0 java-ee-6 openjpa


    【解决方案1】:

    我总是对这样的问题微笑——好问题,潜在的答案让我微笑。

    Java SE 中的 JPA

    如果问题是真的,“我可以在 Java SE 中使用 JPA 吗?”答案很明显,是的。 Java SE 有一个引导 API。它实际上是 JPA 的一个子集,不包含容器管理 (JTA) EntityManager,但它运行良好且非常棒。

    对于某些人来说,这是“不是 JavaEE”。很公平。

    Java SE 中的 EJB

    如果我们问同样的关于 EJB 的问题,“我可以在 Java SE 中使用 EJB 吗?”答案也是,是的。 Java SE 有一个相同的引导 API。它是在 JPA API 之后建模的,也是一个子集,并且根据您选择的实现同样轻巧。

    很少有人会认为这是“不是 JavaEE”。只要您回答 JPA JavaEE,这也是公平的。

    那么,Java EE 与否?

    我怀疑每个人在某种程度上,包括我自己,都觉得有必要分别回答“no”和“yes”。从直觉开始并向后努力使其合理化是很诱人的,但最终它不会改变现实。

    您在什么时候认为部分满的玻璃杯是“empty”或“full”?这是一个棘手的问题,因为部分装满的玻璃杯既不是空的也不是满的。如果您想考虑其中一个,那是个人区别。它不会改变现实。

    JPA 是一个 JavaEE 规范(由 EJB 小组创建),因此使用它绝对意味着您涉及到一些 Java EE。是JavaEE的全部吗,不。它也不是 Java EE 的none

    您可以使用的最诚实的措辞是“我在 Java SE 环境中使用 Java EE 功能。”

    最终,这并不重要。用你喜欢的。

    你的杯子里装满了一些开源 Java EE 的优点。出色的。只要开源领域有好人愿意免费为您加油,我说喝光!

    【讨论】:

      【解决方案2】:

      JPA 2.0 是一个独立的standard,您可以在没有应用服务器的独立Java 应用程序中使用它。事实上,很多人在 中使用 JPA - 它不需要任何容器来运行。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-21
      • 2013-05-28
      • 2015-12-27
      • 2011-02-15
      • 2017-12-31
      • 2019-01-31
      • 2016-08-11
      • 2021-08-10
      相关资源
      最近更新 更多