Разница между JPA и EBean Play Framework

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

В некоторых учебниках используется eBean, а другие - jpa. Я действительно смущен.

Ответы

Ответ 1

Хорошо в Play 2.3 они будут возвращаться к JPA!! Джеймс Уорд, разработчик Advocate at Typesafe, просто сказал мне начать новые проекты с JPA: https://twitter.com/_JamesWard/status/416977192019456000 (или, в частности, Hibernate)

Вот официальная дорожная карта для Play 2.3: https://docs.google.com/document/d/11sVi1-REAIDFVHvwBrfRt1uXkBzROHQYgmcZNGJtDnA/pub

По некоторым причинам, по которым мы решили вернуться к JPA: "[2.3 Дорожная карта] - Вопрос для DevTeam: Почему Ebean считается замененной JPA в 2.3?" https://groups.google.com/forum/#!searchin/play-framework/2.3/play-framework/7pL-Gq_pj7M/UykJdAC6wyYJ

И наконец, Джеймс Уорд создал рудиментарный пример Play JPA для меня на github: https://github.com/jamesward/play-java-jpa

По-прежнему необходимо улучшить примеры поиска и подкачки, но это начало. Я был бы признателен, если кто-нибудь найдет хороший пример Play 2.3 JPA/Hibernate.

Ответ 2

тот же вопрос ответил здесь: https://groups.google.com/forum/#!topic/play-framework/6OR1Osf4AAU

JPA - это стандарт, который реализуется многими библиотеками. Ebean использует части стандарта JPA. Ebean ожидает, что вы аннотируете свои модели аннотациями JPA. Поэтому вопрос, который лучше, Ebean или JPA, является странным для ответа, поскольку Ebean частично является реализацией JPA. Я считаю, что Play 2 может также предложить интеграцию Hibernate, которая более полно реализует стандарт JPA, и, возможно, это то, о чем вы спрашивали? Hibernate гораздо более широко используется в сообществе Java. Я перешел на Ebean, когда пытался играть 2 и не оглядывался назад. Я предпочитаю это Hibernate, потому что у Hibernate было много сложных ошибок, которые я всегда спотыкался, и я не нашел ни одной из этих проблем с ebean.

Ответ 3

Если вы заинтересованы в более технических деталях вокруг разницы между Ebean ORM и JPA (и Hibernate), и, следовательно, причины, по которым Ebean существует в первую очередь, вы можете взглянуть на:

http://ebean-orm.github.io/architecture/compare-jpa

Короче говоря, есть две основные проблемы:

  • Ebean ORM "без сеанса" ORM (поэтому не добавляйте/отсоединяйте семантику, нет EntityManger для управления и т.д.)

  • Язык запросов Ebean ORM лучше разработан для оптимизации построения графа объектов (Поддержка частичных объектов и избегать N + 1), у вас никогда не должно быть N + 1 вопрос с Ebean независимо от того, насколько сложна графа объекта).

Подробнее о частичных объектах обратитесь к:

http://ebean-orm.github.io/docs/query/partialobjects

Более подробную информацию о N + 1 см. в разделе

http://ebean-orm.github.io/docs/query/nplus1

Ответ 4

EBean проще в использовании. Посмотрите пример приложения ComputerDatabase, который поставляется с Play. Возможно, вы захотите использовать EBean во время обучения Play, поскольку EBean является текущим значением по умолчанию.

Тем не менее, будущее - JPA, поэтому вам может потребоваться просто окунуться и изучить его. Существует образец ComputerDatabaseJPA, который также поставляется с Play.