2009-06-15 16 views
36

Ventajas y desventajas de elegir JDO o JPA para una aplicación de Grails que se ejecutará en Google App EngineJava App Engine: JDO o JPA, ¿cómo elegir?

+2

¿Alguna vez quiso decir JDO o JPA? –

+0

corregido, gracias – zotherstupidguy

+0

esto explica JDO vs APP para el motor de Java Google App - http://stackoverflow.com/questions/1418219/jdo-vs-jpa-for-java-on-google-app-engine –

Respuesta

3

Por cierto, Grails tiene su persistencia de datos en la parte superior de Hibernate. ¿Cómo crees que JDO te ayudaría en algo que Hibernate no haría? No veo por qué uno elegiría JDO sobre el valor predeterminado.

Por lo que respecta a JPA, le recomendaría que utilice la implementación JPA, Hibernate de JPA, que es útil con Grails, y no con la función específica de Hibernate, a menos que sea convincente.

[No más relevante después de un cambio significativo en cuestión]

Eso es perfectamente posible tener operaciones CRUD en su propia entidad. Pero hay casos en los que puede encontrarse operando en múltiples entidades, en ese caso una capa es útil y limpia, en mi humilde opinión. De nuevo, es cuestión de requerimientos.

+1

hibernate no funciona con el GAE, por lo que está atascado con alguna forma de JDO o JPA –

2

[Ya no es importante después de un cambio significativo en cuestión]

Tome un vistazo a los siguientes artículos:

http://www.infoq.com/news/2007/09/jpa-dao

Suena como que realmente depende de la naturaleza de su aplicación y el tamaño de eso JPA es más simple, así que me quedaré con eso y trataré de evitar una capa DAO en tu aplicación, siempre que sea una aplicación bastante pequeña y simple.

+0

Bonito enlace, Jon. +1 –

43

I do vea por qué elegiría JDO. No sé cuál es el "valor predeterminado" al que hace referencia otro afiche. JDO es agnóstico de datos. JPA no es. JDO permite buscar grupos. JPA no. JDO permite la identidad del almacén de datos. JPA no. JDO permite transacciones de almacén de datos. JPA no. Todo esto es registro público http://db.apache.org/jdo/jdo_v_jpa.html

JDO y JPA no ocupan el mismo espacio problema. Solo se superponen para RDBMS. JPA está diseñado únicamente para RDBMS.JPA es no más simple, como lo demuestra la comparación API en http://db.apache.org/jdo/jdo_v_jpa_api.html

--Andy (DataNucleus)

7

Si usted está construyendo para AppEngine el camino es más corto y hay menos hipo si usas JDO. De lo contrario, tendrás una capa JPA alrededor de tu motor JDO.

Cuestiones relacionadas