2011-05-29 107 views
0

我有兩個表說父母和孩子。休眠:更新關聯的對象

母體結構

ID || NAME

主鍵是ID

CHILD結構

ID ||姓名|| PAREND_ID

主鍵是ID

外鍵是PARENT_ID

父類如下:

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

子類如下

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

父Hibernate映射如下:

<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> 

我想,如果我改變父母的ID,在子表中的列parent_id也應該得到新的值更新。此外,該協會是單向的從父母到孩子,一個家長可以有很多孩子。 你能幫我解決這個問題嗎? 謝謝

回答

0

您的課程不相互關聯。你可以做的事情不多。 Hibernate只是不知道它們是相關的。 你需要介紹實際的幫助。

此外,更改現有對象的主鍵聽起來不合適正確的設計決策。

+0

我希望如果我改變父母的ID,子表中的parent_id應該得到更新。我知道我的分類沒有關聯。我需要做些什麼改變。謝謝 – Divesh 2011-05-29 16:18:58

+0

對不起,我的壞。我更新了答案。我真的認爲你可能想重新審視你的設計。或者提供更多關於你想要實現的內容,你需要改變對象的主鍵。 – 2011-05-29 16:23:26

+0

我想如果我更改父表中的id,子表中的parent_id列應更新爲新值。我想要這樣的東西:Parent p =(Parent)session.get(Parent.class,「1」); p.setId( 「2」);現在,只要我這樣做,子表中的所有父ID都應更新爲新值(即「2」)。請告訴我我需要的更改。謝謝你的幫助。 – Divesh 2011-05-29 16:25:53