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

Hibernate Java Discussion :

Hibernate Vs JDO


Sujet :

Hibernate Java

  1. #1
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut Hibernate Vs JDO
    Bonjour,

    Dans un projet, j'hsite entre JDO et Hibernate, pour ceux qui les ont déja utilisés, pourraient-il me dire quels sont les avantages et inconvenients de chacun de ses outils ?

    Merci

  2. #2
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Salut,

    Je suis actuellement sur une étude des frameworks de persistance en Java. Hibernate et JDO2 (plus concretement, JPOX) font partie des trois frameworks mis en prototypage avec iBATIS (qui est plus un outil d'externalisation SQL que de persistance).

    D'un point de vue technique, les deux méthodes présentent des différences notables comme, par exemple, l'enhancement (seconde phase de compilation spécifique) nécessaire pour JDO alors qu'Hibernate met tout en place lors du runtime. Cependant, ils proposent tous deux des solutions dont les étendues reposent sur les mêmes concepts de la persistance (transactions, accès concurrentiel, connexion, etc.). Dernier point et avantage à JDO, ce dernier propose (théoriquement) des connexion multisources ... chose cependant non implémentée encore sur JPOX (outil le plus avancé dans le monde open-source).

    Sur un plan plus "pratique", chose qui t'interessera surement plus, les deux frameworks permettent sensiblement les mêmes choses : associations, Heritage, gestion des Collections, composé/composant, clé primaire simple/composées, etc... A l'heure actuelle, je met sensiblement le même temps pour mapper un même exemple sur ces deux frameworks dans la mesure où je suis habitué aux deux.

    Toutefois, deux remarques plutot avantageuses pour Hibernate :
    - fichier de mapping beaucoup plus "lisible" à mon gout. Certes, on peut se "perdre" dans les multiples tags, mais cela rend également le fichier plus compréhensible (tag one-to-one, one-to-many, etc... alors que JPOX propose un simple tag "field" a chaque fois avec des options différentes à préciser).
    - la documentation Hibernate est sans aucune comparaison plus riche que celle de JPOX, et en français en plus. La communauté d'utilisateurs également d'ailleurs.

    Un petit point pour JPOX tout de même :
    - Ils m'ont répondu plus vite sur leur forum qu'Hibernate... toutefois, On peut trouver des réponses sur Hibernate à beaucoup d'autres endroits (tel qu'ici par exemple où l'on retrouve certainement plus de forumeurs connaissant Hibernate que ceux connaissant JDO.

    Dernier bémol à étudier pour ce qui est de l'héritage.Il me semble qu'Hibernate est plus "souple" à ce sujet que JPOX. Le premier fournit un attribut FORMULA permettant de mettre en place des discriminants atypiques (souvent rencontrés dans les bases existantes), alors que JDO ne fournit rien pour cela (enfin, d'après mes premières recherches mais je dois préciser cela).

    Alors, en gros, si ton problème ne présente pas de "cas particuliers" les deux semblent apporter une très bonne solution (sachant qu'apparemment, JPOX offre de meilleures performances qu'Hibernate sur l'utilisation), mais si ta solution repose sur un existant avec beaucoup de zones "sensibles" je dirai, tourne toi plutot vers Hibernate.

    Voila mon opinion, j'espere t'avoir apporter quelques éléments dans ta prise de décision, sachant que ce dernier paragraphe ne constitue que mon humble avis

  3. #3
    Membre du Club
    Architecte de système d’information
    Inscrit en
    Septembre 2005
    Messages
    236
    Détails du profil
    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Septembre 2005
    Messages : 236
    Points : 67
    Points
    67
    Par défaut
    Merci beaucoup, c'est trés clair. Encore merci.

  4. #4
    Expert éminent sénior


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 856
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 856
    Points : 34 380
    Points
    34 380
    Par défaut
    Chose notable également :

    Citation Envoyé par bmoussaud
    JDO est une spécification définissant le concept de 'persistance transparente' pour un objet Java vers une source de données transactionnelle. Exemple de source de données: Base de données relationnelles, Fichier XML, base de données objet, mainframe,…Donc JDO est bien plus qu'un outil de mapping objet/relationnel, c'est un outil de persistance. JDO est conduit par le JSR 12 (Java Specification Request).
    Cf http://bmoussaud.developpez.com/tutoriel/java/jdo/

  5. #5
    Membre éclairé Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Points : 757
    Points
    757
    Par défaut
    Dernier point et avantage à JDO, ce dernier propose (théoriquement) des connexion multisources
    C'est ce que j'entendais par la en effet

    Sinon pour les standards, certes JDO est une spécification mais Hibernate tendra à se rapprocher de la spécification de EJB3 Persistance, et plus tard, SUN compte bien créer une nouvelle spécification pour la persistance : JPA (Java Persistence API) qui regroupera les points positifs de ces deux standards actuels.

Discussions similaires

  1. Passage de JDO à Hibernate
    Par f.hephaistos dans le forum Hibernate
    Réponses: 2
    Dernier message: 01/08/2009, 18h08
  2. JDO /Mapping /Hibernate /Conversion
    Par sunriseprogramer dans le forum Persistance des données
    Réponses: 6
    Dernier message: 11/04/2009, 16h48
  3. Réponses: 47
    Dernier message: 04/07/2006, 16h39
  4. [architecture] [DAO] choisir hibernate ou JDO?
    Par Aldo dans le forum Hibernate
    Réponses: 2
    Dernier message: 06/04/2005, 14h37
  5. [JDO]Hibernate : Mapping d'un champ auto-incrémenté
    Par brice.antoine dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/04/2004, 10h36

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