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

JPA Java Discussion :

Avantage des EJB par rapport aux POJO


Sujet :

JPA Java

  1. #1
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut Avantage des EJB par rapport aux POJO
    Bonjour,

    Je suis en train de regarder JPA et c'est génial

    Je travaille avec Java SE, donc si je veux utiliser les EJB3, il faut que j'utilise le conteneur standalone de JBoss.

    J'ai donc une question à laquelle je n'ai pas vraiment trouvé de réponses : "Quel-est le ou les avantages d'utiliser les EJB3 avec JPA plutôt que de travailler sans ?"

    Si quelqu'un a une idée là-dessus, ce serait cool


  2. #2
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Bonjour.
    Il faut savoir que JPA n'est pas exactement EJB 3. JPA est le remplaçant des Entity Beans de l'EJB 2.
    Comme principaux avantages parapport aux anciens Entity Beans de l'EJB 2, JPA permet de:
    moins de dépendances à une API particulière: plus besoin d'hériter ou d'implémenter une interface ou classe particulière.
    Utilisable dans un environnement SE (au lieu de EE uniquement).
    Simplicité du mapping: Par exemple, dans JPA, n'importe quel champ d'une classe est implicitement persistent, sans avoir à le spécifier. Au contraire, il faut annoter les champs non persistents avec @Transient.
    De plus, les paramètres par défaut des annotations sont en général les bons. càd qu'en général, il suffit juste de mettre l'annotation adaptée pour que ça fonctionne (OneToMany, ManyToMany, etc.) sans avoir à les configurer en détail.
    Fortement inspiré d'autres frameworks qui ont fait leurs preuves comme Hibernate. D'ailleurs, Gavin King est l'homme derrière JPA
    C'est zolie
    Là, c'est un avis perso, je sais qu'il y'a beaucoup de gens qui voient les annotations comme evil (hein KilVaiDen ), mais perso, le gain de temps qu'elles rendent possible, la simplcité du refactoring, leur clarté, etc. m'ont l'air incontournables.

    Voilou.

    P.S: Je ne suis pas certain d'avoir bien saisi ta question Baptiste.

  3. #3
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Merci pour ta réponse

    Mais :

    Citation Envoyé par djo.mos Voir le message
    P.S: Je ne suis pas certain d'avoir bien saisi ta question Baptiste.
    Non pas vraiment

    En fait, dans un environnement Java SE, on peut travailler avec JPA avec ou sans EJB. J'aurais aimé savoir quel était l'avantage d'utiliser les EJB ?

    Mais ta réponse est très intéressante quand même

  4. #4
    Expert éminent
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Points : 7 679
    Points
    7 679
    Par défaut
    Ah ok, c'est plus clair maintenant
    JPA peut être utilisé indépendamment des EJBs, que ce soit dans un environnement SE ou EE.
    En fait, dans l'architecture actuelle de Java, JPA est spécifique à la persistence des données (couche DAO + DTO) tandis que les EJBs servent surtout pour la couche services.

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

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 311
    Points : 9 524
    Points
    9 524
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par djo.mos Voir le message
    Il faut savoir que JPA n'est pas exactement EJB 3. JPA est le remplaçant des Entity Beans de l'EJB 2.
    Il ne faut pas confondre EJB3 et JPA... EJB3 Entity (CMP) s'appuie sur un JPA pour la persistence sachant qu'on peut utiliser hibernate, toplink ou un autre JPA...
    EJB3 va plus loin que les pojos mais s'il s'agit de se limiter aux Entity, la différence est moindre...
    Alors pourquoi utiliser EJB plutôt qu'hibernate (par exemple) ?
    -> et bien parce que l'ejb représente une sorte d'abstraction de la persistence, il standardise, et qu'on peut, par la suite, changer de JPA sans avoir à modifier l'ejb ou les facades
    Il existe aussi des fonctionnalités très intéressante au niveau des ejb, comme l'appel distant, la notion de role, les méthodes appelées avant/après un événement (beforePersist, afterPersist) etc...

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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 74
    Points : 83
    Points
    83
    Par défaut
    Arrétons de parler des EJB entités, ils n'existent plus.
    La spec ejb3 est scindée en deux:
    • ejb session ou mdb
    • Java Persistence API


    Ceux qui on lu les specs me diront que le terme ejb entités reste utilisé dans la première parti, mais c'est un faux amis... Nous n'avons pus de composants JavaEE : nous avons des pojo (différence énorme à l'origine du succès de produits comme hibernate)

    JPA est fortement inspiré par Hibernate et toplink. La preuve: Les core developer d'hibernate ont participé à la rédaction de ces specs.
    L'utilisation de JPA est donc gage d'indépendance théorique de votre code vis à vis d'hibernate (ou tout autre orm). Je dis théorique car JPA ne couvre pas ce qui touche au tuning, laissant cette partie aux diverses implémentation de la norme qui vous propose différentes annotations propriétaires pour cela => rendant votre code dépendant :-( (BatchSize par exemple)



    Citation Envoyé par OButterlin Voir le message
    Il ne faut pas confondre EJB3 et JPA... EJB3 Entity (CMP) s'appuie sur un JPA pour la persistence sachant qu'on peut utiliser hibernate, toplink ou un autre JPA...
    EJB3 va plus loin que les pojos mais s'il s'agit de se limiter aux Entity, la différence est moindre...
    Alors pourquoi utiliser EJB plutôt qu'hibernate (par exemple) ?
    -> et bien parce que l'ejb représente une sorte d'abstraction de la persistence, il standardise, et qu'on peut, par la suite, changer de JPA sans avoir à modifier l'ejb ou les facades
    Il existe aussi des fonctionnalités très intéressante au niveau des ejb, comme l'appel distant, la notion de role, les méthodes appelées avant/après un événement (beforePersist, afterPersist) etc...

    A+

  7. #7
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Je suis en train de lire un bouquin sur JPA et cette fois, j'ai bien l'avantage des EJB avec JPA.

    Cela permet surtout de simplifier la gestion de l'EntityManager grâce aux beans EJB, les exemples donnés dans le livre coule de source.

    On délègue une partie du traitement JPA aux EJB, ce qui permet de se concentrer sur la partie importante.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/08/2011, 11h32
  2. Placer des table les unes par rapport aux autres.
    Par IyF33 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 03/07/2008, 09h29
  3. emplacement des sous menu par rapport aux menus principaux
    Par newmar dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 14/05/2008, 17h10
  4. Gestion des pages par rapport aux menus
    Par darontankian dans le forum Langage
    Réponses: 3
    Dernier message: 31/01/2008, 21h59
  5. les avantages d'PHPEclipse par rapport aux autres IDE php
    Par young077 dans le forum Eclipse PHP
    Réponses: 2
    Dernier message: 29/08/2007, 10h09

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