Можно ли использовать JPA 2.0 без JavaEE 6? - PullRequest
2 голосов
/ 23 февраля 2012

Я использую OpenJPA 2.1 (который реализует JPA 2.0 ) для утилиты командной строки.Я использую классы, которые являются новыми для JPA 2.0 .Моя цель компиляции: Java SE 1.6

OpenJPA 2.1 поставляется со всеми JPA 2.0 javax.persistence.* интерфейсами / реализациями.

* 1017Могу ли я утверждать, что моя утилита не зависит от JavaEE 6 ?

Насколько я понимаю, JavaEE 6 представляет собой набор стандартов.Так что в этом отношении он ничем не отличается от любого другого случайного набора стандартов.Следовательно, JavaEE 6 зависит от JPA 2.0 , но JPA 2.0 не зависит от JavaEE 6 , верно?

Ответы [ 2 ]

6 голосов
/ 24 февраля 2012

Я всегда немного улыбаюсь на подобные вопросы - хороший вопрос, потенциальные ответы заставляют меня улыбаться.

JPA в Java SE

Если вопрос действительно, "я могу использовать JPA в Java SE?"Ответ однозначен, да.Есть загрузочный API для Java SE.Это на самом деле подмножество JPA и не содержит управляемых контейнером (JTA) EntityManager, но работает нормально и просто фантастически.

Для некоторых людей это " не JavaEE ".Достаточно справедливо.

EJB в Java SE

Если мы зададим тот же вопрос о EJB, « могу ли я использовать EJB в Java SE? » Ответ также: да,Существует идентичный API начальной загрузки для Java SE.Он смоделирован по API JPA, также является подмножеством и одинаково легок в зависимости от выбранной вами реализации.

Гораздо меньше людей сочтут это " не JavaEE ".Это также справедливо, если вы ответили, что JPA является JavaEE.

Итак, Java EE или нет?

Я подозреваю, что все на каком-то уровне, включая меня, чувствовалинужно ответить " нет " и " да " соответственно.Соблазнительно начинать с инстинкта кишки и работать в обратном направлении, чтобы рационализировать его, но в конечном итоге это не меняет реальности.

В какой момент вы считаете частично полный стакан либо " пустым * 1034"?* "или" full"?Это вопрос с подвохом, так как стакан, который частично заполнен, не является ни пустым, ни полным.Если вы хотите рассмотреть это одно или другое, это личное различие.Это не меняет реальности.

JPA - это спецификация JavaEE (созданная группой EJB), поэтому ее использование определенно означает, что вы задействовали Java EE.Это все JavaEE, нет.Это не нет Java EE.

Наиболее честное выражение, которое вы можете использовать, это «Я использую функцию Java EE в среде Java SE».

В конечном счете, это не имеет значения.Используйте то, что вам нравится.

Ваш бокал частично наполнен некоторыми качествами Java EE.Отлично.Пока в открытом коде есть хорошие люди, готовые бесплатно наполнить твой бокал, я говорю: выпей!

5 голосов
/ 23 февраля 2012

JPA 2.0 - это независимый стандарт , его можно использовать в автономном приложении Java без сервера приложений.На самом деле многие люди используют JPA в - что не требует запуска какого-либо контейнера.

...