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

NetBeans Java Discussion :

hibernate et couche metier


Sujet :

NetBeans Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 16
    Points
    16
    Par défaut hibernate et couche metier
    Bonjour,
    je suis debutant en poo et java .
    j'essaie un developpement en suivant up et mvc . j'aimerais utiliser hibernate pour la liaison sgbd ; en lisant les tutos on conseille de séparer les classes métiers ( généré par mon controleur ?) des classes persistantes (généré par hibernate explication à la louche !! ) comment dans ce cas valider les save() d'une classe métier vers la bd (heritage ?).
    désolé si je ne suis pas très clair .
    merçi manu

  2. #2
    Membre confirmé Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Points : 576
    Points
    576
    Par défaut
    Les classes métier (qui ne sont généralement pas gérées par le contrôleur) peuvent tout à fait persister des classes entité via Hibernate.

    vue <-> contrôleur <-> métier <-> dao <-> bdd
    "Most Java programs are so rife with concurrency bugs that they work only by accident"

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 16
    Points
    16
    Par défaut comment faire la liaison
    ce que j'ai compris c'est vue <->controlleur <->metier> je pense savoir faire ?? mais
    metier<->dao je voie pas comment . hibernate creer des classes (mappé sur la base) mais moi je lance une méthode save avec mon controleur sur une classe metier, non ?
    exemple save(client) c'est client de la couche metier mais pas la classe de la dao . dois-je creer client (metier) comme heritant de client dao.

  4. #4
    Membre confirmé Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Points : 576
    Points
    576
    Par défaut
    J'ai pas vraiment compris à 100% mais je vais essayer d'y répondre.
    Voici ma méthode qui n'est sûrement pas parfaite je suis un junior aussi:

    Hibernate te génère des classes entité (par exemple client), images de ce qu'il y a dans la base de données.
    A chaque fois que je veux enregistrer une donnée dans la bdd, bah j'instancie une de ces classes entité et ensuite je la persiste avec l'entity manager.

    Maintenant pour transmettre des classes qui contiennent des données (du client par exemple) d'autres couches de l'application (contrôleur, service), bah j'utilise le pattern DTO (data transfert object), et lorsque je veux sauvegarder ces données dans la base de données, bah je mappe le contenu du DTO (les champs dont tu as besoin) dans la classe entity nouvellement instanciée, puis je persiste cette dernière. Lors de l'extraction d'information depuis la BDD bah c'est exactement pareil: entity => DTO
    "Most Java programs are so rife with concurrency bugs that they work only by accident"

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 16
    Points
    16
    Par défaut dto
    tu comprend bien en fait c'est ce pattern dto que je ne connais pas !
    sur un tuto j'ai vu qu'il fallait eviter d'utiliser les "classes" => les objets metiers pour le dao donc je devais passer par d'autres classes mais voila je ne sais pas "copier" d'une classe à l'autre . je poursuis mes recherches. ou y-a-t-il une méthode simple ?
    cordialement manu

  6. #6
    Membre confirmé Avatar de toomsounet
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    481
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 481
    Points : 576
    Points
    576
    Par défaut
    http://msdn.microsoft.com/fr-fr/library/ms978717.aspx
    ça s'applique aussi au J2EE, c'est plus facile qu'il n'y parait. En gros tu créer un Pojo qui contient juste les données que tu veux transmettre entre les couches. Le mapping entre les champs tu peux le réaliser "à la main" dans une méthode dédiée.
    Ensuite il y a peut être mieux mais je ne me suis pas assez penché dessus.
    "Most Java programs are so rife with concurrency bugs that they work only by accident"

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 22
    Points : 16
    Points
    16
    Par défaut ok
    tu as repo,du à mes questions merçi
    cordialement manu

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 80
    Points : 74
    Points
    74
    Par défaut jpa manager
    Bonjour,

    D'après mes souvenirs il existe un template qui fabrique une classe qui porte des primitives de gestion d'une classe JPA (new, list, find, ...), cela doit se trouver dans persistence et doit ressembler à "JPA entity manager". C'est généralement ce type de classe qui porte l'implémentation de la classe DAO d'un EJB.

    Salutations

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 17/03/2010, 18h44
  2. couches metiers et expositions
    Par topolino dans le forum Services Web
    Réponses: 3
    Dernier message: 20/04/2009, 18h25
  3. Réponses: 5
    Dernier message: 03/11/2008, 12h29
  4. Hibernate multi couche
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 1
    Dernier message: 27/07/2006, 14h41

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