hibernate正在不必要地对多对多进行更新

hibernate正在不必要地对多对多进行更新,hibernate,Hibernate,我使用的是Hibernate 3.2,我的类之间有这样的关系: Class B m:m Class A m:m Class C 在我的一个类A方法中,我将更新对象与类C的多对多关系,因此我首先调用它,以便将对象与会话关联: super.getHibernateTemplate().update(obj); 但是,当我调用它时,它也会更新对象与类B之间的多对多关系: Hibernate: delete from AB_JOIN_TABLE where KEY_A=? Hibernate: in

我使用的是Hibernate 3.2,我的类之间有这样的关系:

Class B m:m Class A m:m Class C
在我的一个类A方法中,我将更新对象与类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 (?, ?)

我觉得这完全没有必要。我在AB关系的两边都有cascade=“none”。我想这就足够了。我还需要做什么?

很可能,您的问题是由于使用列表而不是集合造成的,就像ndtreviv所说的那样。

对象是如何存储在类中的?它们是在列表中还是在集合中?我发现,如果存储在列表中,并且您更新了列表,Hibernate将清除整个列表并读取添加项,但对于集合,则不会。