Hibernate JPA:更新查询(仅更新版本)即使它根本没有改变也会被触发

时间:2012-06-11 03:29:15

标签: hibernate jpa

假设我们有一个用户;一个用户可以拥有多个Childs。

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

当我检查SQL时;插入儿童;一个额外的查询被解雇了:

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

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

1 个答案:

答案 0 :(得分:4)

如果这是双向关系的一部分,它的行为与指定的一样。默认情况下,单向一对多使用join-table,然后还应更新版本。在规范中,这用以下词语告知:

  

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