2009-07-08 11 views
0

J'ai une entité A qui a l'entité B.Comment sauvegarder en cascade et supprimer une entité non-collection?

Class Entity A 
{ 
    public EntityB; 
} 

Class Entity B 
{ 
    public Entity A; 
} 

Entité B a relation biunivoque avec A. Je tente d'utiliser sauver cascade, supprimer lorsque l'entité A est enregistré pour que je n'ai pas pour sauvegarder manuellement l'entité B. Cela devrait être fait automatiquement.

Ma correspondance pour l'entité B ressemble à:

<many-to-one name="EntityA" cascade="save-update" 
    column="EntityASomeProperty" class="EntityA" /> 

Je ne peut pas sauver entité B automatiquement lorsque A est enregistré.

Répondre

0

Il semble que vous ayez une cascade définie de B à A, de sorte que lorsque vous enregistrez EntityB, EntityA doit être sauvegardé.

Si vous souhaitez que l'entité B soit enregistrée lorsque vous enregistrez EntityA, vous devez inverser cette configuration. Notez que vous devez choisir une direction dans laquelle vous voulez gérer cette relation et travaillez toujours dans cette direction. Vous pouvez mapper les deux directions, mais faites un inverse pour qu'Hibernate sache dans quelle direction vous voulez le gérer.

Je vous suggère également d'utiliser un mappage OneToOne, si c'est ce qu'il est vraiment.

+0

Salut, j'ai compris. Mais ma question suivante est après avoir créé un mappage un-à-un sur entityA qui sauverait l'entité B im obtenant une erreur qui ne peut pas insérer null dans ENtityB une de la colonne. Et cette colonne contient la propriété entityA (ENtityA Guid). – alice7

Questions connexes