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 :

lazy-loading et RPC


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Par défaut lazy-loading et RPC
    Bonjour, j'utilise actuellement Hibernate sur de nombreux projets et tout particulièrement les mécanismes de lazy-loading conjointement avec le pattern
    Open-Session-In-View afin de pouvoir charger les données dans mes vues (pages JSP). Tout cela fonctionne très bien car tout s'exécute au sein de la même machine virtuelle ( installée sur le serveur ).
    Or depuis peu, je dois développer une appli dont la partie cliente est exécutée sur une machine virtuelle différente de celle du serveur. Mes objets mappés (objets métier) doivent donc transiter du client vers le serveur et vice-versa.
    J'ai donc mis en place une communication RPC entre le client et le serveur tout en voulant continuer à utiliser le lazy-loading sur le client. Or cela ne marche à priori pas car la session ne peut être maintenue sur le client via la communication RPC ( lazyLoadingException).
    Quelle solution adoptée alors? Est-ce une limitation d'Hibernate et du lazy-loading dans le cas d'une communication RPC ou existe-t-il un moyen de congifurer Hibernate afin que cela fonctionne?

    Merci

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Citation Envoyé par nanou2002
    Est-ce une limitation d'Hibernate et du lazy-loading dans le cas d'une communication RPC ou existe-t-il un moyen de congifurer Hibernate afin que cela fonctionne?
    Non, ce n'est pas une limitation d'Hibernate, mais c'est plutot lié au mécanisme d'accès distant lui-même. A partir du moment où il s'agit de communication entre deux JVM différentes, l'instance d'objet que tu récupères côté client n'est qu'une copie de l'instance côté serveur. La session Hibernate étant gérée côté serveur, celle-ci ne gère que les instances montées côté serveur, et en principe la session doit être refermée une fois la réponse renvoyée pour libérer les ressources, car une session hibernate ouverte signifie aussi une connexion base de données ouverte. Le pattern Open-Session-in-View ne peut malheureusement pas s'appliquer ici. cf. http://www.hibernate.org/43.html#A4
    Comme solution, il faut utiliser des objets détachés qui sont retournés au client, modifiés puis renvoyés au serveur pour la mise à jour via une nouvelle session hibernate.
    Comment tu gères les transactions côté serveur ? Avec Spring ou les EJB ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Par défaut
    Merci pour ta réponse. Concernant les transactions, je vais les gérer avec Spring.

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Citation Envoyé par nanou2002
    Merci pour ta réponse. Concernant les transactions, je vais les gérer avec Spring.
    Je te conseille dans ce cas de jeter un oeil sur les mécanismes de Remoting avec Spring, la configuration est simple, et ça faciliterait les choses, plutôt que d'utiliser du RPC brut.

Discussions similaires

  1. spring2 hibernate3 : lazy loading
    Par fxonline dans le forum Hibernate
    Réponses: 9
    Dernier message: 10/02/2007, 18h56
  2. Lazy loading sur component
    Par El Saigneur dans le forum Hibernate
    Réponses: 2
    Dernier message: 03/11/2006, 10h30
  3. Lazy loading et fermeture de session hibernate
    Par BRAUKRIS dans le forum Hibernate
    Réponses: 3
    Dernier message: 20/07/2006, 13h08
  4. [hibernate] problème pour desactiver le lazy loading
    Par agougeon dans le forum Hibernate
    Réponses: 2
    Dernier message: 14/03/2006, 11h20
  5. [HIBERNATE 3]Lazy loading
    Par SEMPERE Benjamin dans le forum Hibernate
    Réponses: 11
    Dernier message: 08/02/2006, 22h40

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