2011-05-29 3 views
0

J'ai deux tables dites parent et enfant.Hibernate: mise à jour des objets associés

PARENT STRUCTURE

ID || NOM

clé primaire est ID

ENFANT STRUCTURE

ID || NAME || clé primaire PAREND_ID

est ID

clé est PARENT_ID

étrangère La classe mère est la suivante:

class parent { 
private String id; 
private String name; 
//getter and setter methods 
} 

La classe enfant se présente comme suit

class child { 
private String id; 
private String name; 
private String parent_id; 
//getter and setter methods 
} 

La cartographie mise en veille prolongée pour les parents est la suivante:

<hibernate-mapping> 
<class name = "parent" table="parent"></class> 
<id.....>....<id> 
<property name = "name" column = "NAME"/> 
</hibernate-mapping> 
<hibernate-mapping> 
<class name = "child" table="child"></class> 
<id.....>....<id> 
<property name = "name" column = "NAME"/> 
<property name = "parent_id" column = "PARENT_ID"/> 
</hibernate-mapping> 

Je veux que si je change l'identifiant de parent, la colonne parent_id dans le tableau des enfants devrait également obtenir mis à jour avec la nouvelle valeur. De plus, l'association est unidirectionnelle de parent à enfant et un parent peut avoir plusieurs enfants. Pouvez-vous m'aider avec ceci. Merci

Répondre

0

Vos classes ne sont pas associées les unes aux autres. Il n'y a pas grand-chose que tu puisses faire. Hibernate ne sait tout simplement pas qu'ils sont liés. Vous devez introduire des assiettes réelles.

De même, la modification de la clé primaire de l'objet existant ne sonne pas comme une décision de conception correcte.

+0

Je veux que si je change l'ID de parent, le parent_id dans la table enfant devrait être mis à jour. Je sais que mes classées ne sont pas associées. Quels changements dois-je faire. Merci – Divesh

+0

désolé, mon mauvais. J'ai mis à jour la réponse. Je pense vraiment que vous voudrez peut-être revoir votre design. Ou fournissez plus de contexte sur ce que vous essayez d'accomplir que vous devez changer la clé primaire de l'objet. –

+0

Je veux que si je change l'id dans la table parent, la colonne parent_id dans la table enfant devrait être mise à jour à la nouvelle valeur. Je veux quelque chose comme ceci: Parent p = (Parent) session.get (Parent.class, "1"); p.setId ("2"); Maintenant, dès que je fais cela, tous les ID parents dans la table enfant doivent être mis à jour à une nouvelle valeur (c'est-à-dire "2"). S'il vous plaît dites-moi les changements dont j'ai besoin. Merci de votre aide. – Divesh

Questions connexes