IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Persistance des données Java Discussion :

JDO vs JPA que choisir ?


Sujet :

Persistance des données Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut JDO vs JPA que choisir ?
    Bonjour,

    Il y a quelques années que je m'intéresse aux bases de données objet sans vraiment avoir jamais regardé de plus près ce qu'on savait faire. Les bases de données objet ont l'avantage de pouvoir tirer profit de la structure des classes pour stocker plus efficacement les données. Il y a un certain nombre d'arguments en faveur des bases de donnée objet ou relationnelles :

    http://en.wikipedia.org/wiki/ODBMS#A..._disadvantages

    et on en vient assez naturellement à parler de JDO :

    http://www.jdoinstruments.org/whyjdo.htm

    et du coup, on peut se demander quelle solution choisir entre JDO et JPA. On trouvera alors un certain nombre d'informations précieuses ici :

    http://db.apache.org/jdo/jdo_v_jpa.html

    Seulement, ces informations semblent être en contradiction avec cette interview, apparemment du fondateur d'Hibernate qui écarte la question sur JDO :

    http://www.javafree.org/artigo/871462/

    (J'ai pas la date)

    Maintenant, la question, c'est que faire ? Faut il utiliser JDO ou JPA ? Et avec quelles implantations ?

    Si JDO semble plus puissant, il semble aussi qu'il y ait moins d'outils développés qui fournisse une implantation. Est-ce qu'Hibernate en envahissant l'espace aurait-il tué les projets d'implantation d'une norme plus générique ?

    Est-ce une bonne idée d'utiliser des bases de donnée objet plutôt que relationnelles ? Est-ce qu'il existe des bases de donnée objet suffisamment puissantes pour rivaliser avec les bases de donnée relationnelles ? Faut il utiliser JDO ou JPA ?

    En dernier ressort, si je ne trouve pas de réponse, je pourrais peut être faire tout à la fois, grâce à ce projet :

    http://www.datanucleus.org/products/...1_0/index.html

    Le connaissez vous ?

  2. #2
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 89
    Points : 111
    Points
    111
    Par défaut
    ayant utilisé les 2, je préfère la simplicité de mise en oeuvre de JPA et ça me rassure qu'il y ai plusieurs implémentations, et plus simplement Jpox.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Comment concrètement s'exprime cette simplicité de mise en oeuvre ?

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    En utilisant JPA, tu restes dans le standard ce qui aura, tôt ou tard, des avantages par rapport aux autres solutions (même si elles sont bonnes).

    Personnellement, je pousse à l'utilisation des EJB3 qui rendent l'implémentation du JPA encore plus secondaire... On passe d'un TopLink à Hibernate sans aucune modification des EJB Entity et EJB Session.
    Comme on peut, en plus, utiliser un conteneur EJB light sur Tomcat, plus rien ne s'y oppose...

    JDO, j'avais tenté de l'utiliser (contrainte client) il y a 2 ans sans jamais trouver la doc qui va bien ou l'implémentation (ça a peut-être évolué depuis )
    Avec Hibernate, tu as des tonnes de doc et exemples...

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Mais JDO est également un standard. Je ne vois pas en quoi JPA a un avantage sur JDO de ce coté là.

    Je ne vois pas non plus en quoi utiliser des composants EJB3 permet d'être plus indépendant de l'implémentation. Les API JPA et JDO sont décrites entièrement et indépendamment des différentes implémentations, et passer d'une à l'autre ne pose a priori aucun problème.

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    JDO n'est pas un standard JEE
    Pour le reste, essaye de passer d'une application développée avec Hibernate à TopLink, tu as toutes les chances d'avoir utilisé des options spécifiques... EJB3 Entity EST une norme JEE et si on respecte son vocabulaire (et options), l'implémentation physique de la norme est secondaire.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    Pour moi c'est un no-brainer:
    - JPA

    1- JPA est le standard de persistance JavaEE
    - utilisable dans JavaEE et JavaSE

    2- JPA s'appuie sur des "Persistence Manager" divers ayant fait leur preuve et tres connus:
    - Oracle Toplink (RI)
    - Hibernate
    - EclipseLink (base sur Toplink)
    - OpenJPA
    - Kodo
    - ...

    Je pense que tu trouveras bcp plus de competences et documentation autour de JPA. Et le nombre d'utilisateurs devrait encore grandir avec l'adoption de JavaEE 5.


    Kenavo
    Tug
    http://www.exoplatform.org
    http://www.nantesjug.org
    http://blog.grallandco.com

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    JDO n'est peut être pas un standard J2EE mais est un standard et s'utilise avec J2EE.

    La communauté est effectivement bien moins développée autour de JDO qu'autour de JPA. Mais le fait que les développeurs utilisent JPA parce que les autres utilisateurs utilisent JPA ne me convainc pas vraiment sur l'avantage de JPA par rapport à JDO.

    Je pense que ce n'est pas qu'une question de mode et j'aimerais savoir pourquoi.

Discussions similaires

  1. Que choisir : Delphi ou C++ ?
    Par Gwipi dans le forum Débats sur le développement - Le Best Of
    Réponses: 30
    Dernier message: 18/07/2010, 11h43
  2. Que choisir ? Delphi ou Java ?
    Par Jean-Yves dans le forum Débats sur le développement - Le Best Of
    Réponses: 89
    Dernier message: 19/04/2008, 15h40
  3. Réponses: 47
    Dernier message: 04/07/2006, 16h39
  4. Web contre client/serveur que choisir??
    Par silvermoon dans le forum Débats sur le développement - Le Best Of
    Réponses: 41
    Dernier message: 24/01/2004, 15h53
  5. Que choisir ? Visual C++ ou Borland c++ builder ?
    Par ashram dans le forum Débats sur le développement - Le Best Of
    Réponses: 27
    Dernier message: 24/02/2003, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo