当前位置: 首页 > 知识库问答 >
问题:

Hibernate触发实体上的更新查询,即使没有属性更改也是如此

喻嘉泽
2023-03-14

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

如果获取是我所做的一切,我不希望JPA/Hibernate在没有调用保存()或saveAndFlush()的情况下触发更新查询。

共有1个答案

金钧
2023-03-14

从数据库返回的实体在hibernate的世界中是“被管理”的。因此,当事务块/边界关闭时,hibernate可能会向db发出一个回存,因为它认为该实体是脏的,需要用它拥有的内存/ hibernate缓存信息进行更新。

我不认为你可以跳过这一步,因为这是hibernate工作方式的一部分。即使你看到一个更新正在发布,我建议你不要担心。

 类似资料:
  • 问题内容: 假设我们有一个User;一个用户可以有多个孩子。 现在,当我插入一个孩子时;我打电话给坐在JVM中的用户对象进行了更新..尽管实际上用户的数据库记录没有任何变化,因为它是OneToMany。 当我检查SQL时;连同插入孩子; 另一个查询被触发: 有什么想法吗?以及如何解决这个问题 问题答案: 如果这是双向关系的拥有方,则它的行为如指定。默认情况下,单向一对多使用连接表,然后还应该更新版

  • 当用户滑动滑块时,我试图触发一个事件,当滑动停止时,该值会更改。根据jQuery文档,对于这种情况,事件是理想的选择。所以我正在尝试: 然而,我观察到,当我向右拖动滑块并再次将其拖回起点(页面加载时滑块的初始位置)时,警报仍会触发。这是jQuery错误吗?如果没有,我该如何解决这个问题?

  • 我有一个PSU实体: null 我收到错误:

  • 问题内容: 我收到一个包含30个字段的JSON,而我的实体是根据此JSON构建的。问题是:不应更新两个字段(两个日期)。 如果使用,两个字段都会更新。 如何避免更新这两个字段? 也许使用criteria.Example? 没有我写大量的HQL,有什么方法可以做到这一点吗? 问题答案: 本文非常详细地解释了您的问题,但我也将在这里进行总结。 如果您永远不想更新这两个字段,则可以将它们标记为: 当你将

  • 我在React组件中添加了生命周期方法 我的问题是,即使nextProps和nextState与当前props和状态完全相同,也会在组件上调用此方法。当我比较nextProps和this.props的console.log语句时,它们完全相同。国家也是如此。 那么为什么应该调用ComponentUpdate呢? 每当我更改父组件的状态时,就会调用它。但是没有任何道具或状态在实际组件上发生变化。那么

  • 问题内容: 我正在尝试了解Angular世界和非Angular世界之间的相互作用。 给定一个这样声明的指令: 如果超出角度的代码以这种方式更改指令: 指令如何知道其属性之一已更改? 问题答案: 最好改为在指令中进行此更改。如果由于某种原因无法做到这一点,那么有两种选择。 在应用程序外部,获取对应用程序中任何DOM元素的引用。使用该引用,然后可以获取对其范围的引用。您可以将元素与id一起使用。例如: