2011-06-16 64 views
4

我使用Hibernate的3.2,我有我的學生之間的這種關係:Hibernate是一個更新許多到許多不必要的

Class B m:m Class A m:m Class C 

在我的方法爲一類一,我即將更新一個對象的C類多到多的關係,所以我把這首以對象與會話關聯:

super.getHibernateTemplate().update(obj); 

然而,當我把這個也更新了不少一對多的關係該物體具有B類:

Hibernate: delete from AB_JOIN_TABLE where KEY_A=? 
Hibernate: insert into AB_JOIN_TABLE (KEY_A, KEY_B) values (?, ?) 

我覺得這完全沒有必要。我在A < - > B的關係的兩邊都有cascade =「none」。我認爲這就夠了。我還需要做什麼?

+1

如何將對象存儲在類中?他們是在一個列表還是集合?我發現如果存儲在列表中,並且更新列表,Hibernate將清除整個列表並讀取添加項目,但使用集合則不會。 – ndtreviv 2012-10-02 10:45:13

回答

0

也許,您的問題是由使用List而不是Set造成的,就像ndtreviv所說的那樣。