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 :

Hibernate Collection de Proxy ?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut Hibernate Collection de Proxy ?
    Salut

    Je dispose dans mon application d'un cache applicatif, contenant entre autre une liste d'objet appelé VerticalSection.
    De plus un certain type d'objet possede une collection de VerticalSection. Et je souhaiterais que cette collection soit Lazy, ou plus précisement que cette collection soit chargé par une liste de proxy ne contenant que les id des VerticalSection.
    Puis par exploitation de mon cache je pourrait remplacer les proxy de ma liste par de vrai objet issu de mon cache.

    Sauf que apparement ce n'est pas possible
    - Si ma collection est Lazy="true": Ma collection est charger full
    - Si ma collection est Lazy="false": Ma collection est "faussement chargée", et si je fait 'get' dessus et que je suis dans un contexte de persistence il me charge full la collection et si je suis hors contexte de persistence il me plante une lazy exception avant de pouvoir récuperer mes id

    La seule solution plus ou moins temporaire que j'ai trouver c'est de mapper une liste d'id : List<Long> puis d'avoir une liste d'objet List<VerticalSection> qui elle est non mappé mais est mis a jour par mon service de chargement, grace a mon cache applicatif.

    Y-a-t'il une autre solution ?, car celle-çi ne me satisfait par trop


    Merci pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    71
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2007
    Messages : 71
    Par défaut
    Si tu ne veux pas que ta collection soit chargée complètement lorsque tu fais le 'get' dessus, tu as moyen de dire à Hibernate de ne charger que les n suivantes ce qui limite le chargement. C'est une option à mettre dans les fichiers de mapping je crois, mais je ne retrouve pas les liens.

    Tu peux peut-être également passer par les proxys, pour faire croire au chargement sans pour autant avoir la liste complète des données en mémoire.

    Je te conseille cet article, que je trouve très bien fait, et qui m'a permis de résoudre nombre d'erreurs :

    http://today.java.net/pub/a/today/20...ng.html?page=2

    MiniMarch

  3. #3
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    171
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 171
    Par défaut
    Je te remerci de m'avoir donné une réponse mais malheureusement cet article ne traite pas de mon probleme.
    Et j'ai bien peur que ce soit tout simplement pas possible.

Discussions similaires

  1. [Hibernate] mapping d'une collection
    Par Jorus dans le forum Hibernate
    Réponses: 22
    Dernier message: 01/12/2008, 17h16
  2. [hibernate] Collection d'objet persistent
    Par Invité dans le forum Hibernate
    Réponses: 10
    Dernier message: 28/04/2006, 16h56
  3. [HIBERNATE] Illegal attempt to associate a collection with..
    Par PamelaGeek dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/03/2006, 11h09
  4. [Hibernate] Petites questions (proxy?, load vs get)
    Par seawolfm dans le forum Hibernate
    Réponses: 4
    Dernier message: 07/02/2006, 10h00
  5. [Hibernate] Proxy erreur
    Par DarkNagash dans le forum Hibernate
    Réponses: 2
    Dernier message: 05/08/2005, 11h32

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