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

Accès aux données Discussion :

Hibernate / illegal access to loading collection


Sujet :

Accès aux données

  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 26
    Par défaut Hibernate / illegal access to loading collection
    Bonjour,

    J'ai un soucis lors de l'accès à certaines données de classes.

    J'ai deux classes mapées sur ma database: "Command" qui est composé de "CommandLine".
    Lors de l'ajout d'une "CommandLine" à la liste des "CommandLines" de l'objet "Command", je souhaiterai remonter vers le parent et reparcourir ses enfants:

    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CommandLine cl = new CommandLine();
    A l'initialisation d'une des propriétés par hibernate, j'appelle une fonction computePrice() où je fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach( CommandLine cl in this.Command.CommandLines)
    {
    }
    this.Command est initialisé, mais malheureusement lors de l'obtention de this.Command.CommandLines, j'obtiens une erreur intitulée
    illegal access to loading collection.
    Je ne cherche pas à la modifier cette collection, seulement à la parcourir.
    Je m'y prends peut-être mal, mais je ne vois pas comment faire autrement et rapidement.

    Merci de votre aide !

    Pour info, voici le mapping:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <class name="CommandLine" table="[Merilink].[dbo].[commandline]">
        ...
        <many-to-one name="Command" column="command_id" class="Command" foreign-key="FK_commandline_command" not-null="true"/>
        ....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <class name="Command" table="[Merilink].[dbo].[command]">
        ...
        <bag name="CommandLines" inverse="true">
          <key column="command_id" foreign-key="FK_command_commandline"/>
          <one-to-many class="CommandLine"/>
        </bag>
        ....

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Désolé, ceci est une non-réponse, mais j'ai déjà moi même galéré avec Hibernate (je l'utilise plus du coup, puisque c'est "indébuggable"). Je sais qu'il y a plusieurs mécanisames de logg. Je pense qu'il faut que tu regardes de ce côté là pour comprendre ce qui se passe. (genre comme ça)

  3. #3
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Citation Envoyé par chrisdot Voir le message
    je l'utilise plus du coup, puisque c'est "indébuggable"[/URL])
    Ce qu'il faut lire comme connerie ici...Tu n'arrive pas à comprendre ce qui se passe dans un framework qui dispose :

    D'un log (Log4net)
    D'un moteur d'exception
    D'un moteur d'interception
    D'une transparence SQL
    Et surtout....du code source...

    C'est plutôt que tu n'as pas cherché à comprendre. Mais respecte au moins le travail d'une communauté plutôt que de sortir ce genre d'abomination.

  4. #4
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Par défaut
    Pour la vraie réponse :
    Tu tournes en rond en fait :

    Command référence CommandLines qui lui même référence commandeLine, qui référence Command...

    Cela se nomme :
    Object-relational impedance mismatch

    Et ton cas est ici :
    soluce

Discussions similaires

  1. illegal access to loading collection
    Par <romain/> dans le forum Hibernate
    Réponses: 0
    Dernier message: 14/04/2009, 18h14
  2. Réponses: 4
    Dernier message: 11/04/2008, 12h12
  3. [Spring][Hibernate]illegal access to loading collection
    Par ysoubigo dans le forum Hibernate
    Réponses: 2
    Dernier message: 24/01/2008, 15h24
  4. Illegal access, Could not load java.net.BindException
    Par red210 dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 08/10/2007, 14h09
  5. [HIBERNATE] Illegal attempt to associate a collection with..
    Par PamelaGeek dans le forum Hibernate
    Réponses: 4
    Dernier message: 02/03/2006, 11h09

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