36 votes

Java AppEngine: JDO ou JPA, comment choisir?

Avantages et inconvénients de choisir JDO ou JPA pour une application Grails qui s'exécutera sur Google AppEngine

42voto

DataNucleus Points 12361

Je ne vois pourquoi vous choisissez JDO. Ne sais pas ce qu'est le "défaut" désigné par d'autres affiches. JDO est la banque de données agnostique. JPA n'est pas. JDO permet à des groupes de fetch. JPA n'est pas. JDO permet à la banque de données de l'identité. JPA n'est pas. JDO permet à la banque de données de transactions. JPA n'est pas. Tout cela est rendu public http://db.apache.org/jdo/jdo_v_jpa.html

JDO et JPA ne remplissez pas le même problème de l'espace. Ils se chevauchent uniquement pour les SGBDR. JPA est conçu uniquement pour les SGBDR.JPA n'est pas plus simple, comme en témoigne la comparaison des API http://db.apache.org/jdo/jdo_v_jpa_api.html

--Andy (DataNucleus)

7voto

icoloma Points 71

Si vous construisez pour AppEngine, la route est plus courte et il y a moins de problème si vous utilisez JDO. Sinon, vous aurez une couche JPA autour de votre moteur JDO.

3voto

Adeel Ansari Points 24434

Par la voie, Graal ses données de persistance de construire au-dessus de la veille prolongée. Comment pensez-vous JDO serait de vous aider en quelque chose de Hibernate va pas? Je ne vois pas pourquoi on devrait choisir de JDO sur la valeur par défaut.

Aussi loin que JPA, je vous recommande d'utiliser JPA, Hibernate mise en œuvre de la JPA qui vient à portée de main avec le Graal, et pas de mise en veille prolongée fonctionnalité spécifique, sauf convaincante.

[Plus pertinent après un changement significatif dans la question]

C'est parfaitement bien pour avoir les opérations CRUD dans votre entité elle-même. Mais il ya des cas où vous pouvez vous trouver d'exploitation sur plusieurs entités, dans ce cas, une couche est pratique et propre, à mon humble avis. De nouveau la question de l'exigence.

2voto

Jon Points 23749

[N'est plus pertinent après un changement significatif en question]

Jetez un coup d'œil aux articles suivants:

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

Cela semble dépendre de la nature de votre application et de sa taille. JPA est plus simple, donc je m'en tiens à cela et j'essaie d'éviter une couche DAO dans votre application, à condition qu'il s'agisse d'une application relativement petite et simple.

2voto

nadersoliman Points 419

Je pense que cette discussion peut compléter la réponse précédente d'Andy, même si elle peut être contradictoire. http://groups.google.com/group/google-appengine-java/browse%5Fthread/thread/d14e8b11f7b78a19

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X