play framework java jpa playframework ebean

java - Diferencia entre JPA y EBean Play Framework



play framework mysql (4)

Soy relativamente nuevo en Play framework, intenté seguir el libro de cocina pero parece que ya está desactualizado. De todos modos, solo quiero saber si hay una gran diferencia entre los que he mencionado.

Algunos tutoriales usaban eBean mientras que los otros usaban jpa. Estoy realmente confundido.


¡Bien en Play 2.3 volverán a JPA! James Ward, Developer Advocate en Typesafe, acaba de decirme que inicie nuevos proyectos con JPA: https://twitter.com/_JamesWard/status/416977192019456000 (o específicamente Hibernate)

Aquí está el Roadmap oficial para Play 2.3: https://docs.google.com/document/d/11sVi1-REAIDFVHvwBrfRt1uXkBzROHQYgmcZNGJtDnA/pub

Por algunas de las razones detrás de la decisión de volver a cambiar a JPA: "[2.3 Roadmap] - Pregunta para DevTeam: ¿Por qué se considera que Ebean se reemplazó con JPA en 2.3?" https://groups.google.com/forum/#!searchin/play-framework/2.3/play-framework/7pL-Gq_pj7M/UykJdAC6wyYJ

Y finalmente, James Ward creó un rudimentario ejemplo de JPA para jugar en github: https://github.com/jamesward/play-java-jpa

Todavía necesita ser mejorado con ejemplos para búsqueda y paginación, pero es un comienzo. Agradecería saber si alguien más encuentra una buena práctica. Ejemplo de Play 2.3 JPA / Hibernate.


EBean es más fácil de usar. Mire la aplicación de ejemplo ComputerDatabase que viene con Play. Es posible que desee utilizar EBean mientras aprende Play, ya que EBean es el valor predeterminado actual.

Sin embargo, el futuro es JPA, por lo que es posible que desee darse el paso y aprenderlo. Hay una muestra ComputerDatabaseJPA, que también viene con Play.


Si le interesan los detalles más técnicos sobre la diferencia entre Ebean ORM y JPA (e Hibernate) y, por lo tanto, las razones por las que Ebean existe, en primer lugar, puede consultar:

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

En resumen, hay 2 problemas principales:

  • Ebean ORM es ORM "sin sesión" (por lo tanto, no adjuntar / separar semántica, no EntityManger para gestionar, etc.)

  • El lenguaje de consulta de Ebean ORM está mejor diseñado para optimizar la construcción del gráfico del Objeto (admite objetos parciales y evita N + 1 ; nunca debes tener un problema N + 1 con Ebean sin importar cuán complejo sea el gráfico del objeto).

Para obtener más información sobre los objetos parciales, consulte:

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

Para más detalles sobre N + 1, consulte:

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


la misma pregunta respondió aquí: https://groups.google.com/forum/#!topic/play-framework/6OR1Osf4AAU

JPA es un estándar que implementan muchas bibliotecas. Ebean usa partes del estándar JPA. Ebean espera que anote sus modelos con anotaciones JPA. Entonces, la pregunta, que es mejor, Ebean o JPA, es extraña de responder ya que parcialmente Ebean es una implementación de JPA. Creo que Play 2 también podría ofrecer una integración de Hibernate, que implementa más completamente el estándar JPA, ¿y quizás es por lo que preguntabas? Hibernate es mucho más utilizado en la comunidad de Java. Cambié a Ebean cuando probaba Play 2 y no he mirado hacia atrás. Prefiero Hibernate porque Hibernate tenía muchos problemas difíciles con los que siempre tropezaba y no he encontrado ninguno de estos problemas con ebean.