2010-06-14 11 views
8

¿Cuál es tu elección? ¿Tienes alguna sugerencia y experiencia?Comparación de implementaciones JPA 2.0: Hibernate 3.5 vs EclipseLink 2 vs OpenJPA 2

Estoy desarrollando una aplicación con Hibernate 3.5 y 3.0 Primavera

Pros:

  • buena documentación
  • Fácil configuración y los registros votos
  • popularidad - toda la comunidad
  • Algunas extensiones a JPA
  • Algunas herramientas adicionales - JBoss Tools for Eclipse, hbm2ddl, generando metamodelo estática, etc ...

Contras:

  • errores! (Secuencias, colecciones, etc.)
  • Muchas de las repeticiones se duplican con Hibernate "puro". Hay un caos en las anotaciones heredadas de Hibernate y JPA.

Estoy pensando en cambiar a EclipseLink. Qué piensas ?

Editar:

He intentado EclipseLink y tienen muy malas experiencias. Parece que EclipseLink necesita LoadTimeWeaver y le gusta ejecutarse en la plataforma OSGi en lugar del simple entorno Jetty o Tomcat. Simplemente no tengo tiempo para todas estas cosas de configuración.

Respuesta

6

EclipseLink funciona perfectamente bien sin el Weaver e igualmente en Jetty, Tomcat o una plataforma OSGi. La descarga estándar es un simple eclipselink.jar. ¿Quizás descargó los paquetes OSGi por error?

The Weaver no es necesario, pero agregará algunos beneficios de rendimiento y si no desea configurarlo para que se ejecute en Spring, puede usar el weaving estático en tiempo de compilación (http://wiki.eclipse.org/Using_EclipseLink_JPA_Extensions_%28ELUG%29#To_Configure_Static_Weaving_for_JPA_Entities).

+0

Su respuesta es interesante. Me interesa el método static weaver con ANT, es decir, 'org.eclipse.persistence.tools.weaving.jpa.StaticWeaveAntTask', pero parece que no puedo hacerlo funcionar debido a este error http://stackoverflow.com/questions/5783991/eclipselink-2-ant-task-error. ¿Es esto un error con Eclipselink 2? – ChuongPham

0

Yo diría que depende de su aplicación. Si envejece y va a utilizar muchas características relacionadas con Oracle (como, necesita sugerencias en su SQL o consultas jerárquicas, etc.), EclipseLink es más adecuado para usted. En otro caso, recoja Hibernate. Más detalles que puede encontrar en http://simpletoad.blogspot.com/2012/11/what-u-must-know-about-eclipselink-orm.html BTW, no se preocupe por la evaluación comparativa de rendimiento allí ORM - si el rendimiento es crítico para - no use ORM en absoluto

+1

¡Gracias por publicar tu respuesta! Asegúrese de leer detenidamente [Preguntas frecuentes sobre autopromoción] (http://stackoverflow.com/faq#promotion). También tenga en cuenta que * se requiere * que publique un descargo de responsabilidad cada vez que se vincula a su propio sitio/producto. –