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

时间:2010-10-31 15:11:18

标签: java hibernate orm

Suposse我有两个班级:

class A {
Set<B> bs
}
class B {
}

此映射:

<set name="bs" table="bs_tab" cascade = "save-update">
            <key column="a_id />
            <many-to-many column="b_id" class="B"/>
</set>

并像这样加入表:

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

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

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