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

NHibernate Discussion :

[NHibernate] Found shared references to a collection


Sujet :

NHibernate

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 55
    Points : 49
    Points
    49
    Par défaut [NHibernate] Found shared references to a collection
    Bonjour

    J'ai le message suivant
    Found shared references to a collection : ...
    et
    j'ai un gros doute d'un seul coup ...

    Ma base dispose de 3 tables
    Batch
    Action
    et BatchAction qui permet une relation n-n entre les deux premières.


    J'ai mappé les objets comme suit :

    Batch.hbm.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    ?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                       namespace="Project.Entities"
                       assembly="Project">
     
      <!-- Mappings for class 'Batch' -->
      <class name="Batch" table="Batch" lazy="false">
     
        <!-- Identity mapping -->
        <id name="IdBatch" type="System.Int32" unsaved-value="null">
          <column name="IdBatch" />
          <generator class="native" /> 
        </id>
     
        <!-- Simple mappings -->
        <property name="Name" />
     
        <!-- Many-to-many mapping: Action     -->
        <bag name="Actions" table="BatchAction" cascade="all" lazy="false">
          <key column ="IdBatch" />
          <many-to-many class="Action" column="IdAction" />
        </bag>
      </class>
     
    </hibernate-mapping>
    Action.hbm.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?xml version="1.0" encoding="utf-8" ?>
    <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                       namespace="Project.Entities"
                       assembly="Project">
     
      <!-- Mappings for class 'Action' -->
      <class name="Action" table="Action" lazy="false">
     
        <!-- Identity mapping -->
        <id name="IdAction" type="System.Int32" unsaved-value="null">
          <column name="IdAction" />
          <generator class="native" />
        </id>
     
        <!-- Simple mappings -->
        <property name="Name" />
     
        <!-- Simple mappings -->
        <property name="CreateDate" />
     
        <!-- Simple mappings -->
        <property name="Localisation" />
     
        <!-- Simple mappings -->
        <property name="Category" />
     
        <!-- Simple mappings -->
        <property name="Constraints" />
     
        <!-- Many-to-many mapping: Batch -->
        <bag name="Batchs" table="BatchAction" cascade="none" lazy="false">
          <key column ="IdAction" />
          <many-to-many class="Batch" column="IdBatch" />
        </bag>
     
      </class>
     
    </hibernate-mapping>
    J'ai donc la collection de Batchs dans Action et la collection d'Actions dans Batch.

    Est-ce autorisé ? J'étais parti avec l'idée que NHibernate garantissait l'intégrité de ce type de définition

    En gros si j'ai un Batch et une Action
    J'ai un objet Batch instancier => batch
    si je fait batch.Actions[0].Batchs[0] j'obtiens la référence de l'objet batch initial.

    Est-ce bien cela ?

    Merci de votre aide.

  2. #2
    Membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2010
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 55
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    Problème réglé !

    La vérité était ailleurs (encore). Le soucis était le suivant :
    La base est mise à jour par un CallBack (delegate).
    Il faut assuré la non réentrance de cette methode (lock) afin d'éviter qu'une écriture soit interrompu par une autre.

    Cela dit, j'ai toujours le doute sur ma question précédente.
    Si un Gourou Hibernate avait la réponse, je suis preneur.

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur Found shared references to a collection
    Par pcouas dans le forum Hibernate
    Réponses: 1
    Dernier message: 13/03/2019, 01h12
  2. Type mismatch / Item not found in the collection.
    Par broise dans le forum VBA Access
    Réponses: 2
    Dernier message: 18/07/2008, 14h14
  3. No collection found
    Par machipot dans le forum Struts 1
    Réponses: 4
    Dernier message: 29/05/2007, 02h01
  4. Réponses: 1
    Dernier message: 04/04/2007, 09h17
  5. Réponses: 8
    Dernier message: 16/01/2007, 11h16

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