假设我们有一个用户;一个用户可以拥有多个Childs。
现在,当我插入一个孩子;我调用user.addChild()
以便更新坐在JVM中的用户对象..但实际上用户的数据库记录没有任何变化,因为它是OneToMany。
当我检查SQL时;插入儿童;一个额外的查询被解雇了:
update User set version=? where id=? and version=?
任何想法为什么?以及如何解决这个问题
答案 0 :(得分:4)
如果这是双向关系的一部分,它的行为与指定的一样。默认情况下,单向一对多使用join-table,然后还应更新版本。在规范中,这用以下词语告知:
所有非关系字段和属性以及所有关系
该实体拥有的内容包含在版本检查中 ...
这包括在连接表中维护的所有关系。