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

Java EE Discussion :

CMP/BMP ?


Sujet :

Java EE

  1. #1
    Invité(e)
    Invité(e)
    Par défaut CMP/BMP ?
    Bonjour,

    sauf erreur de ma part je n'ai vu nul part la notion de BMP ou CMP en EJB3.
    Est ce que l'arrivée de l'EntityManager à pris le dessus sur ces notions pour les EJB3 ?

    dans les livres que j'ai parcourus je n'ai pas trouvé d'informations sur les CMP en ejb3, avez vous une idée ?

    j'ai survolé la spec ejb3 intitulée : ejb-3_0-fr-spec-persistence
    téléchargeable ici ->lien
    page 120.

    que comprenez vous ?

    Les BMP et CMP ne sont plus différenciés de la même façon ?

    pour un CMP on utiliserait :
    @PersistenceContext(type=EXTENDED)
    EntityManager em;

    et pour un BMP on utiliserait:
    @PersistenceUnit
    private EntityManagerFactory emf;

    merci beaucoup
    Dernière modification par Invité(e) ; 10/06/2008 à 18h21.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Points : 495
    Points
    495
    Par défaut
    Bonjour,

    Disons que, pour faire simple, les "Entity Beans" (CMP ou BMP) constituent le mécanisme de persistence qui était le plus utilisé dans les versions antérieures à ejb3. Mais à cause des nombreuses limitations des Entity Beans, la version EJB3 a introduit un nouveau mécanisme de persistence plus simplifiée et plus flexible, sur le modèle de ce qu'apportaient déjà des frameworks comme Hibernate. Ce nouveau mécanisme est donc le standard JPA (Java Persistence API) qui est donc conseillé lorsque l'on fait du développement ejb3. Dans une application ejb3, on peut toujours faire cohabiter des entity beans et une persitence jpa, si on se sent plus à l'aise avec les entity beans ou si l'on doit faire évoluer une application qui contient déjà des entity beans. Mais tant qu'on part de zéro, il vaut mieux utiliser le nouveau standard.

    Les entity beans (CMP ou BMP) font toujours partie de la spécification EJB et doivent être implémentés par tous les serveurs d'applications, mais c'est juste que c'est un mécanisme de persistence maintenant dépassé au profit de JPA. C'est pour cela que tu ne trouveras pratiquement pas des bouquins sur ejb3 qui traiteraient encore des entity beans (cmp/bmp) pour ne pas occuper de la place inutilement et mieux se concentrer sur jpa.

    Les BMP et CMP ne sont plus différenciés de la même façon ?

    pour un CMP on utiliserait :
    @PersistenceContext(type=EXTENDED)
    EntityManager em;

    et pour un BMP on utiliserait:
    @PersistenceUnit
    private EntityManagerFactory emf;
    Comme je l'ai dit, les BMP et CMP sont toujours différenciés de la même manière dans la spécification ejb3, mais juste qu'ils n'ont rien à voir avec JPA et donc rien à voir avec PersistenceContext.

    Voilà, j'espère que j'ai bien répondu à tes questions.

  3. #3
    Invité(e)
    Invité(e)
    Par défaut
    Merci beaucoup,

    je vais me renseigner sur JPA. Je ne sais pas encore quelle voie prendre, dois je migrer vers JPa ou non du coup...

    merci encore, je vais pouvoir continuer mon étude

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    Bon j'ai fais quelque recherches, prévenez moi si je me trompe,

    si j'ai bien compris JPA est donc une API non spécifique aux EJb et peux s'appliquer aussi à J2SE.

    j'ai lu ceci: Tutoriel Java jmd JPA

    ça me semble vraiment puissant, mais quelles sont les différences alors avec les CMP/BMP

    en EJB2 pour un CMP je dispose de:
    un entity bean
    une interface HOME avec les méthodes create() et find()

    en EJB3 je disposerais alors:
    un entity bean
    plus d'interface mais alors une sorte de façade invoquant un Entitymanager

    Cet EntityManager aura à sa charge de gérer la persistance, c'est lui géra les liaisons entre l'Entity bean et la base de données.

    l'intéret:
    Utilisation des annotations évitant l'écriture du fichier de déploiement
    Les annotations permettent aussi de définir un champ comme clé primaire
    donc moins de xml -> ok

    mais je dois tout de même invoquer l'EntityManager pour effectuer l'EJB-QL
    en quoi cela est il plus avantageux de procéder ainsi ?

    Je dois de plus définir un fichier persitence.xml pour donner les informations concernant la base de données mais aussi spécifier les classes des entités qui compose l'unité de persistance. cela revient il pas au même principe que le fichier de déploiement ?

    Donc au final, soit je continue à utiliser les CMP/BMP soit j'utilise JPA en sachant que cela est totalement différent.

    Avec JPA il n'y pas de notions de CMP ou BMP car la persistance est gérée grâce à l'API via l'EntityManager.

    Donc JPA et CMP/BMP sont deux notions distinct mais je n'arrive pas (par manque d'experience) à cerner l'avantage réel de JPA par rapport à avant hormis le faite que cette API ne se restreint pas aux EJB

    merci


    édit:

    voici un article intéressant qui explique en quoi JPA est un atout comparé à l'emploi de JDBC et des DAO

    http://www.theserverside.com/tt/arti...=MigratingJDBC
    Dernière modification par Invité(e) ; 11/06/2008 à 13h01.

Discussions similaires

  1. Différence entre CMP et BMP ?
    Par amiricool dans le forum Java EE
    Réponses: 3
    Dernier message: 28/10/2013, 16h02
  2. [TP]Charger un fichier bmp
    Par flavien tetart dans le forum Turbo Pascal
    Réponses: 5
    Dernier message: 30/06/2002, 20h04
  3. Réponses: 2
    Dernier message: 30/05/2002, 11h19
  4. Création image BMP
    Par Anonymous dans le forum C
    Réponses: 2
    Dernier message: 25/04/2002, 17h04

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