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 :

La modification des objets passés aux EJB


Sujet :

Java EE

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut La modification des objets passés aux EJB
    Bonjour !

    Question simple:
    - si je vais monEjb.modify(monObjectClient); dans la méthode les attributs de monObjectClient sont modifiés coté server. Est ce que monObjectClient est automatiquement modifié coté client.

    ou bien il faut faire un truc du genre monObjectClient=monEjb.modify(monObjectClient).

  2. #2
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    C'est quoi "monObjetClient" ? Un entity Bean ???

    Il est fortement déconseillé de renvoyer des entity bean au client... Utilise le design pattern Value Object ou Transfer Object :
    A transfer object is a serializable class that groups related attributes, forming a composite value. This class is used as the return type of a remote business method. Clients receive instances of this class by calling coarse-grained business methods, and then locally access the fine-grained values within the transfer object. Fetching multiple values in one server roundtrip decreases network traffic and minimizes latency and server resource usage.
    http://java.sun.com/blueprints/patte...ferObject.html

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2002
    Messages
    705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 705
    Points : 393
    Points
    393
    Par défaut
    monObjectClient c'est un simple objet qui contient des attributes de type String

  4. #4
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    alors oui, ...
    il faut faire un truc du genre monObjectClient=monEjb.modify(monObjectClient).

  5. #5
    Membre du Club Avatar de bubu56
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 58
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par Claythest
    Il est fortement déconseillé de renvoyer des entity bean au client...
    Pourquoi ? En EJB 3 je ne pense pas que cela pose problème. si ?

  6. #6
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Tu peux en effet le renvoyer, c'est possible "techniquement", mais ton entity bean n'a plus rien à voir avec un entity bean... Tu renvoies juste une copie de ton objet, déconnecté de la BD...

  7. #7
    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
    Citation Envoyé par Claythest
    Tu peux en effet le renvoyer, c'est possible "techniquement", mais ton entity bean n'a plus rien à voir avec un entity bean... Tu renvoies juste une copie de ton objet, déconnecté de la BD...
    Oui mais c'est justement une des principales simplifications des EJB3 par rapport aux EJB 2.x CMP, c'est que là tu peux renvoyer tes entity beans au client sous forme d'objets détachés, effectuer les modifications sur la couche présentation, puis par la suite les réattacher dans une nouvelle transaction pour faire la mise à jour de la base de données. Cela permet notamment de simplifier le code en n'étant plus obligé de créer des DTOs et leur factory et autres ... Ces entity beans ne perdent pas leur statut d'entity bean pour autant, à mon avis. Mais bien sûr, un des inconvénients dans ce cas c'est que la couche présentation devient quelque part couplée au model et aux modifications de ce dernier, sans oublier que certaines méthodes d'un entity bean pourraient ne pas être destinées à être appelées par la couche présentation...
    En tout cas, c'est une question de goût, je pense, et tant que l'application n'est pas complexe et n'implique pas différentes équipes de développeurs travaillant sur les différentes couches (presentation, business, persistence...) où une définition précise des interfaces entre les couches serait nécessaire, je crois qu'on peut quand même se passer d'une encapsulation totale de la couche business par rapport à la couche présentation.
    Voilà, c'est mon avis, mais je pense que le débat a le mérite d'être ouvert.
    SCJP 5 / SCBCD 1.3 Certified

  8. #8
    Membre confirmé Avatar de Claythest
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    558
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 558
    Points : 554
    Points
    554
    Par défaut
    Ah ok

    Ayant découvert les EJB que depuis les EJB3, et ayant trouvé beaucoup de sites où ils disaient qu'il ne fallaient pas envoyer des entity beans au clients (ils devaient surement parler des EJB2 alors...), j'en avais déduis que c'était le cas depuis toujours et encore aujourd'hui... On en apprends tous les jours

    Merci

    (et je crois enfin comprendre pourquoi les entity beans doivent implémenter serializable (d'après mon netbeans ) ... )

Discussions similaires

  1. Suivi de modification des objets
    Par Vince7-7 dans le forum Oracle
    Réponses: 4
    Dernier message: 10/07/2013, 17h04
  2. l'état de modification des "objets"
    Par zooffy dans le forum Développement
    Réponses: 4
    Dernier message: 24/09/2008, 14h14
  3. Liste des objets appartenant aux utilisateurs par défaut
    Par ilalaina dans le forum Administration
    Réponses: 3
    Dernier message: 20/06/2008, 11h19
  4. Contrôle de la classe des objets passés en paramêtres ?
    Par marot_r dans le forum VBA Access
    Réponses: 0
    Dernier message: 07/04/2008, 22h55
  5. Réponses: 2
    Dernier message: 17/08/2006, 16h24

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