一尘不染

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

hibernate

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

现在,当我插入一个孩子时;我打电话给user.addChild()坐在JVM中的用户对象进行了更新..尽管实际上用户的数据库记录没有任何变化,因为它是OneToMany。

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

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

有什么想法吗?以及如何解决这个问题


阅读 418

收藏
2020-06-20

共1个答案

一尘不染

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

所有非关系字段和属性以及
实体拥有的所有关系都包含在版本检查中。

这包括在联接表中维护的拥有的关系。

2020-06-20