2

假设,我们有一个 User ;一个用户可以有多个孩子。

现在,当我插入一个孩子时;我调用user.addChild()以便更新位于 JVM 中的用户对象.. 虽然实际上用户的数据库记录没有任何变化,因为它是 OneToMany。

当我检查 SQL 时;连同插入到孩子中;另一个查询被触发:

update User set version=? where id=? and version=?

任何想法为什么?以及如何解决这个问题

4

1 回答 1

4

如果这是双向关系的拥有方,则它的行为与指定的一样。默认情况下单向一对多使用连接表,然后版本应该更新。在规范中,这是用以下词语来讲述的:

所有非关系字段和属性以及
实体拥有的所有关系都包含在版本检查中。
...
这包括在连接表中维护的拥有关系。

于 2012-06-11T07:11:45.263 回答