8
votes

NHibernate - Erreur de déshydration de la valeur de la propriété

Je reçois la valeur de la propriété déshydratoire de déshydration de l'erreur lors de l'engagement pendant la mise à jour. J'ai cherché et j'ai l'air similaire à NHibernate: Erreur de déshydratation Propriété - Ce que diable est-ce? La seule différence étant que dans la question référé, NHibernate se plaignait de Impossible de résoudre la valeur de la propriété

pour l'émission de données existant dans la base de données afin que cela ne puisse pas être Une question de référencement d'un enregistrement non enregistré

Ce qui suit est l'erreur suivante. xxx

mappage pour l'émission d'émetteur xxx < / pré>

schéma pour émetteurOffice xxx

mappage pour autocollantVoice xxx

< / p>

schéma pour autocollantVoice xxx

J'ai essayé pour des désactivités de type de données ou des propriétés répétées, mais n'a trouvé aucun.

toute assistance sera appréciée. < / p>


0 commentaires

3 Réponses :


8
votes

Si vous examinez votre exception plus avec précaution, vous verrez cette erreur:

NHibernate.TransientObjectException: Objet Références Un non favorisé Instance transitoire - Enregistrez l'instance transitoire avant de rincer ou fixer une action en cascade pour la propriété à quelque chose qui le ferait autosave. Type: Model.IssuSuSuçice, entité: Model.SuSuingOffice P> BlockQuote>

Fondamentalement, on dirait que vous essayez de sauvegarder le émetteuroffice code> contenant un ou plusieurs non enregistrés autocollantVoice code>. Vous devez définir le Option en cascade sur émetteurOffice Code> Cartographie du sac. P>

<bag name="IssuedStickers" table="StickerInvoice" 
     generic="true" inverse="true" cascade="save-update">
  <key column="StickerIssuingOfficeId" />
  <one-to-many class="StickerInvoice"/>
</bag>


3 commentaires

L'émetteur propose déjà dans la base de données et ne nécessite donc pas d'économie ni de mise à jour. Je veux seulement mettre à jour les données existantes sur le stickerinvoice sans affecter l'émission de proposition. Dans ce scénario, j'ai vraiment besoin d'une cascade?


Ensuite, vous utilisez probablement une instance transitoire de StickerInvoice, peut-être chargée dans une autre session.


Enquête sur votre dernier commentaire, j'ai réalisé que la version de l'émission d'émetteur a été initialement définie sur 0 lors de l'initialisation des données. Changer la valeur à 1 résolvé le problème. Merci pour ton aide



5
votes

J'ai résolu cette exception en définissant un drapeau de lecture de la partie multiple d'une partie de la relation: xxx


1 commentaires

Je me demande pourquoi les échantillons ne se réfèrent pas à cette solution simple. J'ai perdu environ 2-3 jours à la recherche de cette solution simple.



-1
votes

Cette erreur apparaît lorsque vous essayez d'enregistrer l'objet avec ID = 0


0 commentaires