2009-05-19 7 views
2

J'essaie de sauvegarder un enregistrement qui a un mappage de propriété many-to-one. Je tente d'affecter un objet parent nouvellement créé ici (ou d'utiliser un objet existant, mais cela fonctionne bien), mais une erreur se produit lorsqu'il essaie d'ajouter l'ID de l'objet parent à la table de l'enfant. Dire qu'il ne peut pas ajouter NULL à la table, ce qui est vrai, mais je pensais que nHibernate était assez intelligent pour enregistrer l'objet parent en premier, même si j'ajoute l'enfant.nHibernate: Enregistrement d'un nouvel objet parent lors de la création d'un objet enfant

Mappages:

enfant:

<many-to-one name="parent" class="ParentClass" column="parentID" cascade="all"/> 

Parent:

<bag name="DataList" table="ChildTable" lazy="false" inverse="true" cascade="all-delete-orphan"> 
     <key column="parentID" /> 
     <one-to-many class="ChildClass" /> 
    </bag> 

En gros, est-ce quelque chose NHibernate peut faire?

Répondre

1

Je ne vois pas votre mappage parent, mais je parierais si vous avez inversé = true et mis en cascade activé pour un ensemble d'objets enfants, et vous autorisez des valeurs nulles dans la colonne parentID de votre objet enfant, quand le parent a réussi à l'enregistrer mettrait à jour l'objet enfant correctement.

0

Cela peut être dû au fait que votre clé primaire soit "affectée" au lieu d'être générée par Nhibernate.

Questions connexes