为什么在添加元素以设置映射多对多时,hibernate从连接表中删除行?

Suposse我有两个class:

class A { Set bs } class B { } 

这个映射:

     

并加入这样的表格:

 bs_tab( a_id, b_id, primary key(a_id, b_id) ) 

当我向bs set添加一些元素然后调用Session.saveOrUpdate(一个实例)时,hibernate正在删除bs_tab中的所有行,这些行与添加新元素之前的集合中的B实例相对应。

我怎么解决这个问题?

确保正确实现equals / hashCode 。 我有相同类型的映射(单向多对多),并且添加元素不会为连接表生成DELETE然后INSERT SQL语句。