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 :

Livre : "Java persistence et Hibernate" d'Anthony Patricio


Sujet :

Hibernate Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Points : 17
    Points
    17
    Par défaut Livre : "Java persistence et Hibernate" d'Anthony Patricio
    Bon, j'ai acheté ce bouquin parce que je débute en Hibernate, que j'ai raisonnablement compris les principes et que, pous l'application que je développe, j'ai besoin de clés composites et de contraintes d'intégrité.

    Bref, un bouquin me semblait la bonne idée pour voir en détail, pas à pas, le fonctionnement de la Beste.

    Hélas ! Le livre est en contradiction avec tout ce que j'avais lu jusqu'ici, que ce soit dans les tutoriels ou dans la doc...

    Notamment, la configuration n'a rien à voir avec ce que j'ai pu lire ici et là.

    Dans le livre, la configuration générale me semble avoir disparu. À la place, on configure des "unités de persistance" (une par base de données) ce qui se fait via un fichier nommé persistence.xml situé dans META-INF/, à la racine du réertoire qui dépendra de l'unité de persistance.
    Dans ledit fichier, on définit les paramètres d'accès à la base de données.

    Par ailleurs on ajoute, pour la source de données, un fichier XML nommé comme on veut, décrivant les paramètres de connexion. (driver JDBC, URL, etc.)
    En outre, ce fichier contient également les noms des classes à persister.

    Nulle part il n'est expliqué, de manière cohérente, la manière de relier les infos du fichier persistence.xml et du fichier de description de la source de données.

    Nulle part on ne dispose d'informations claires sur la façon d'écrire ces fichiers, quels tags on peut exactement y mettre, et quelles informations ils doivent contenir.

    Cerise sur le gâteau : l'auteur enterre purement et simplement les métadonnées sous fome XML, pour les remplacer par des annotations (extraite d'EJB 3.0) situées directement dans les classes à persister. Je comprend que cela puisse être l'avenir des métadonnées, et même, en les parcourant, j'ai été assez séduit par leur fonctionnement.

    Malheureuement, la solution me semble difficilement applicable, puisque l'étape de configuration est infranchissable. À chaque fois qu'on aurait besoin de détails (pour les fichiers de configuration, comment les écrire, où le mettre et comment les déclarer) l'auteur renvoit à la documentation en ligne.
    Laquelle ne fait que de vagues références à l'approche qu'il présente. L'impasse.

    Bien sûr, en lisant la doc, on arrive à configurer Hibernate, en s'appuyant sur un fichier hibernate.properties et des fichiers de mapping XML. Mais comme ces derniers ont été exclus par l'auteur, le livre ne sert plus à rien.

    42 euros de perdu, pour le moment...

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Si tu voulais un ouvrage sur Hibernate, c'est plutôt vers celui là que tu aurais du te tourner :
    http://www.amazon.fr/Hibernate-3-0-o...066492&sr=1-13

    Le bouquin que tu as acheté parle de Java Persistence (JPA), c'est donc normal que tu y trouves les annotations, la config via persistence.xml, etc...
    C'est une partie de la norme EJB3, dont Hibernate est une implémentation.

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Merci ! Malheureusement ce livre m'a l'air épuisé.
    J'avoue que j'ai bêtement fait un tour dans la librairie près de chez moi, et que j'y ai acheté l'unique livre parlant d'Hibernate.
    Et c'est là que j'ai un peu de mal : comment se fait-il qu'Hibernate puisse avoir ainsi deux comportement incompatibles pour faire la même chose ? Pour autant que j'en ai compris, d'après le livre que j'ai acheté (à jeter ?), il est possible d'utiliser à la fois des métadonnées XML et des annotations, les premières complétant les secondes.
    Et pourquoi pas, après tout ? Il s'agit bien de gérer de la persistence au bout du compte, alors qu'importe la manière dont on déclare les métadonnées.

    Ce qui m'échape c'est qu'il me semble qu'Hibernate a constitué une grande avancée dans la gestion de la persistence transparente. Au point que les évolutions menant à EJB 3 sont fondées sur son fonctionnement.
    Hibernate semble donc implémenter à la fois son fonctionnement classique (métadonnées XML, configuration humainement appréhendable) et la vision un peu effrayante de Java persistence. Ces deux mécanismes sont donc incompatibles ?

    Comprend pas...

    Va falloir lire encore...

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Points : 4 141
    Points
    4 141
    Par défaut
    Si tu veux commencer Hibernate, le plus simple est d'aller sur le site officiel et de lire la documentation.
    Tu y trouveras un exemple te permettant de débuter.

    En essayant de faire simple :
    au départ, tu as Hibernate avec ses fichiers xml de mapping et son fichier xml de configuration.
    Par la suite, a été rajouté un module d'annotations, pour profiter des avancées de Java 5 et pouvoir se passer des fichiers XML.

    Ensuite sont venus les EJB3 et JPA.
    Hibernate a simplement rendu son système d'anotations compatible avec la norme JPA ainsi que toutes les fonctionnalités de la norme.

    Tu as donc deux choix possible:
    - utiliser Hibernate (fichiers xml ou annotations)
    - utiliser JPA avec Hibernate ou autre comme implémentation (annotations)

    Voilà, c'est un peu résumé et pas très précis, mais j'espère que ça t'aidera.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2007
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup de tes réponses.

    Oui, tu m'éclaires bien en précisant la nuance entre les deux approches. Je n'ai pas de connaissances suffisantes pour trancher entre les deux, donc je vais prendre la solution qui me semble la plus simple et qui marche : Hibernate "pur".

    J'ai le sentiment que l'évolution est assez rapide dans ce domaine :

    1- Hibernate simplifie la persistence;
    2- java évolue;
    3- Hibernate suit l'évolution et propose de nouveaux mécanismes;
    4- une norme se met en place (replaçant la précédente) pour synthétiser tout ça.

    Pas facile de s'y retrouver dans tout ça !

    En tout cas merci infiniment d'avoir pris le temps de me répondre (effectivement la doc d'Hibernate est super bin faite) !

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour dverdin,
    je suis l'auteur du livre et viens de découvrir ton message.
    Je suis désolé pour les soucis que tu rencontres et pour le malentendu Hibernate _versus_ JPA.
    Dans les questions/réponses et introduction du livre j'insiste lourdement sur le fait que ce livre est dédié à Java Persistence avec Hibernate et non à Hibernate.
    J'explique aussi comment le modèle de configuration et de description des méta données est réellement facilité avec les annotations et le fichier persistence.xml.
    Je sais que ma réponse arrive tardivement mais il est vivement conseillé d'utiliser la forme Java Persistence normalisée plutôt que Hibernate pure, non portable et bien plus complexe à mettre en oeuvre.
    Tu l'as vu par toi même, démarrer dans le mapping objet relationnel est déroutant, imagine la lourdeur du livre si j'avais dupliqué toutes les méta données dans leur version annotation ET fichiers de mapping, ça aurait été totalement illisible pour une valeur ajoutée moindre, puisqu'utiliser les annotations une fois, c'est les adopter.

    Comme l'a souligné fr1man, mon premier livre t'aurait été plus utile mais effectivement il est en rupture (victime de son succès).

    Je serai ravi de t'éclairer, tu peux me contacter sur anthony _at_ hibernate.org

    @+
    Anthony

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