没有JavaEE 6可以使用JPA 2.0吗?

Vic*_*sky 2 java openjpa java-ee java-ee-6 jpa-2.0

我正在使用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,对吗?

Dav*_*ins 6

我总是对这样的问题微笑一下 - 好问题,潜在的答案让我微笑.

Java SE中的JPA

如果问题确实存在," 我可以在Java SE中使用JPA吗? "答案显然是肯定的.有一个用于Java SE的bootstrapping API.它实际上是JPA的一个子集,并且不包含容器管理(JTA)EntityManagers,但它工作正常并且非常棒.

对于某些人来说,这是" 不是JavaEE ".很公平.

Java SE中的EJB

如果我们问关于EJB的相同问题," 我可以在Java SE中使用EJB吗? "答案也是,是的.Java SE有一个相同的bootstrapping API.它以JPA API为模型,也是一个子集,同样轻,取决于您选择的实现.

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

那么,Java EE还是不?

我怀疑在某种程度上,包括我自己在内的每个人都觉得有必要分别回答" "和" ".从内心的本能开始并向后工作以使其合理化是很诱人的,但最终它并没有改变现实.

在什么时候你认为部分全玻璃要么" "还是" "?这是一个棘手的问题,因为部分装满的玻璃既不是空的也不是满的.如果你想考虑其中一个,那就是个人的区别.它并没有改变现实.

JPA是一个JavaEE规范(由EJB组创建),因此使用它绝对意味着您已经涉及一些Java EE.这是JavaEE的全部,没有.这不是没有的Java EE任.

关于你可以使用的最诚实的措辞是"我在Java SE环境中使用Java EE功能."

最终,没关系.用你喜欢的.

你的玻璃部分已满,有一些开源的Java EE优点.优秀.只要有开源的好人愿意免费装满你的杯子,......我说要喝酒!


Tom*_*icz 5

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