当前位置: 首页 > 面试题库 >

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

乐正焕
2023-03-14
问题内容

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

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

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

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

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


问题答案:

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

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

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




 类似资料:
  • v2.0.9[2020-4-12] 修复(Fixed): 修复 MySQL 8.0 生成实体主键位置错误 e437d36 更新(Update): 连接池关闭连接, 如果连接已经断开, 异常将会被忽略 7aac80da 增强(Enhancement): v2.0.8[2020-1-18] 修复(Fixed): 修复 ws server 的 message response.finish 兼容 swo

  • 网防G01最新版本为:Linux版本:3.0.63.10,Windows版本:3.1.18.6,PC客户端版本:3.1.18。 更新记录: 2020年03月30日 2018年11月06日 2018年05月15日 2017年10月10日 2017年07月21日 2020年3月30日,更新说明 Linux版本:3.1.20.15 Windows版本:3.1.20.15 PC客户端版本:3.1.20.1

  • 2018-06-19:更新 Homestead 版本到 v7.8.0; 2018-06-17:更新 Homestead 等虚拟机软件到最新;

  • 现在创建一个 git版本库:(参见“初始化”一节) mkdir sandbox cd sandbox/ git init touch test git add . git commit -m "创建git版本库" git log查看版本纪录: commit d63e709f565dcd60ab749f0eca27a947b02b8c26 Author: kardinal <2999am@g

  • 我们有JPA hibernate的spring boot项目。设置非常普通-rest controller-Service-Repository。有一个返回类型为实体的特定endpoint。该服务从db获取实体,进行一些计算,然后将其返回给客户端。问题是,一旦服务调用返回,就会在后端的这个实体上触发一个更新查询。任何实体属性都不会更改。Repository.save()也未被调用,但更新查询仍在进

  • 0.1.25 增加奇货可查指数接口 e.g. ak.get_qhkc_data("商品指数") 0.1.26 修复代码格式问题 0.1.27 修复说明格式问题 0.1.28 更新说明文档 0.1.29 规范说明文档格式 0.1.30 规范说明文档格式 0.1.31 规范 cot.py 函数说明 0.1.32 update basis.py 0.1.33 增加奇货可查数据三个接口: