hibernate中的更新与合并方法

2024-01-02

据我所知,如果没有其他具有相同 id 和类型的对象附加到会话,则更新用于将分离的对象置于持久状态。合并不关心状态。如果会话中不存在相同类型的持久对象,它只会返回一个持久对象,或者使用新对象的值更新旧对象。我的问题是关于数据库点击率。 “更新”和“合并”方法是否立即到达数据库?或者当会话关闭时,数据库中的更改会变得明显。

编辑:如果我们通过 save 方法在持久实例上调用 update 方法会发生什么?我认为更新方法仅用于分离的实例。


当会话刷新时,Hibernate 会处理持久保存会话中对象的任何更改。如果会话中已存在该对象的实例,则更新可能会失败。在这种情况下应该使用合并。它将分离对象的更改与会话中的对象(如果存在)合并。

更新:如果您确定会话不包含具有相同标识符的已持久实例,则使用更新将数据保存在休眠中

合并:如果您想随时保存修改而不知道会话的状态,请在 hibernate 中使用 merge() 。

当实体实例处于持久状态时,您对该实例的映射字段所做的所有更改都将在刷新会话时应用于相应的数据库记录和字段。持久实例可以被认为是“在线”的,而分离的实例已经“离线”并且不会监视更改。

这意味着当您更改持久对象的字段时,您不必调用 save、update 或任何这些方法来将这些更改保存到数据库:您所需要做的就是提交事务,或者刷新或关闭会话,当你完成后。 重要的是要了解所有方法(persist、save、update、merge、saveOrUpdate)不会立即生成相应的 SQL UPDATE 或 INSERT 语句。数据实际保存到数据库发生在提交事务或刷新会话时.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hibernate中的更新与合并方法 的相关文章

  • 将 WAR 部署到 Tomcat(Spring Boot + Angular)

    我正在尝试使用以下命令部署 Spring Boot 应用程序WAR包装至Tomcat 10 应用程序已成功部署 但是 当我尝试访问端点时 它会导致404 未找到 战争文件 应用程序 war http localhost 8080 appli
  • 使用 TLS PSK 加密时如何正确检测流结束?

    我已经准备好了一个简单的 TLS PSK 客户端测试用例 https github com afarber jetty newbie tree master TlsPskClient2 src main java de afarber tl
  • 在java代码中创建postgresql表

    我有一个与 postgreSQL 数据库连接的 java 代码 现在 我希望当它连接到数据库时 我还将创建数据库表 但我的问题是 它不会创建数据库 我不知道问题是什么 这是我的代码 Statement st null ResultSet r
  • 如何重复一段文本中的每个字母?爪哇语

    就像在口吃中一样 如果文本为 dean 并且乘数为 3 则结果将是 dddeeeaaannn 由提供的乘数指定的次数 public static void repeatLetters String text dean int n 3 Str
  • Jenkins 未显示 Maven 编译器错误

    在 Jenkins 中构建多模块 maven 3 项目时 如果出现构建错误 我们会收到一条神秘消息 表明 Maven 编译器插件失败 这在上周才刚刚开始发生 INFO BUILD FAILURE INFO INFO Total time 1
  • 当前平台不支持桌面 API

    我遇到过这个错误 java lang UnsupportedOperationException 当前平台不支持桌面 API 我将从我的 java 应用程序中打开一个文件 我用这个方法 Desktop getDesktop open new
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 如何使用 aether 从 Java 找到最新版本的 Maven 工件?

    他们的文档非常薄弱 我无法弄清楚 我找到了部分答案here https stackoverflow com questions 27428068 how to retrieve the latest also snapshot versio
  • 在 doxygen 中使用 @see 或 @link

    我之前用 Javadoc 记录并使用了标签 see link or see foo and link foo 在我的描述中链接到其他课程 现在我尝试了doxygen 似乎这些标签不兼容 如果我运行 doxygen 完整的标签将被简单地解释为
  • 如何检查单词是否在wordNet中

    我开始了解wordNet直到我知道我找到了synonymous对于一个特定的词 现在我有一个文件 我想使用标记化该文本n gram例如 String s I like to wear tee shirt 使用后n gram这将是 I lik
  • 在 Eclipse 中删除空块之前的新行

    我更喜欢奥尔曼式 http en wikipedia org wiki Brace style Allman style大括号 例如 if foo magical prancing unicorn stuff 而不是 if foo unma
  • 生成一定长度的所有排列

    假设我们有一个字母表 abcdefghiklimnop 如何以有效的方式以五个一组的形式重复该字母表来递归生成排列 几天来我一直在为此苦苦挣扎 任何反馈都会有帮助 本质上这与 生成给定字符串的所有排列 https stackoverflow
  • javadoc 子集/java 库组织

    我自己从来没有运行过javadoc 无论是在命令行还是ant 的 javadoc 任务 http ant apache org manual Tasks javadoc html 我将使用 ant 我需要为我编写的库生成 javadoc 问
  • 如何使用 AffineTransform.quadrantRotate 旋转位图?

    我想旋转一个bitmap关于它的中心点 然后将其绘制成更大的图形上下文 位图是40x40 pixels 图形上下文是500x500 pixels 这就是我正在做的 BufferedImage bi new BufferedImage 500
  • 如何在一次操作中使用 Thymeleaf 检查 null 和空条件?

    有什么方法可以检查 Thymeleaf 中的 null 和empty 条件吗 方法一 1 variable1 variable2 variable3 2 variable null 3 variable 如果我们结合两个条件 例如 vari
  • Spring 如何在运行时获取有关“强类型集合”的泛型类型信息?

    我在 Spring 3 0 文档中阅读了以下内容 强类型集合 仅限 Java 5 在 Java 5 及更高版本中 您可以使用强类型集合 使用泛型类型 也就是说 可以声明一个 Collection 类型 使其只能包含 String 元素 例如
  • 为什么/何时应该使用泛型方法?

    学习Java的时候遇到过通用方法 public
  • Spring MVC:通用 DAO 和服务类

    我正在 Spring MVC 中编写网页 我使用 Generic DAO 编写了所有 DAO 现在我想重写我的服务类 我该如何写 通用服务 我的 DAO 如下 DAO package net example com dao import j
  • 使用 Hibernate Envers 的复合表

    我有一个带有复合表的应用程序 其中包含一个额外的列 一切正常 直到我们添加 Hibernate Envers Audited org hibernate MappingException 无法读取 no pack response Resp
  • FragmentMap + ActionBar 选项卡

    我一直在尝试插入一个MapView进入一个ActionBar Tab 但我什至无法解决问题 即使谷歌搜索 这是主要活动 Override public void onCreate Bundle savedInstanceState supe

随机推荐

  • Silverlight:如何设置验证工具提示的样式?

    我做了一些搜索 但这不是我要找的 那么 有谁知道如何在 Silverlight 中设置验证工具提示的样式 绿色边框中的东西 替代文本 http img689 imageshack us img689 222 validationtoolti
  • 获取CPU或主板序列号?

    我正在尝试获取CPU serial or motherboard serial using C or Python出于许可目的 是否可以 我在用着Linux 在 Linux 下 您可以使用 lshw quiet xml 并解析其输出 您将在
  • keras 和 tf.keras 模型之间的兼容性

    我有兴趣在 tf keras 中训练模型 然后用 keras 加载它 我知道这不是强烈建议 但我有兴趣使用 tf keras 来训练模型 因为 tf keras 更容易构建输入管道 我想利用 tf dataset API 我有兴趣用 ker
  • 为 Spring Boot 实现字节服务

    我想使用 Spring Boot Rest API 在 Angular 中实现视频播放器 我可以播放视频 但无法进行视频搜索 每次当我使用 Chrome 或 Edge 时 视频都会一遍又一遍地开始 我尝试了这个端点 RequestMappi
  • PHP PDO 获取 MySQL 日期时间

    我有一个代表 MySQL 表的 PHP 类 其中一种列表类型是DateTime 以前我使用字符串并且一切正常 因为我不必处理日期类型 我只是用fetchAll函数和列表自动映射到适当的字段 stmt gt execute results s
  • 使用 GAE Python 第二代在本地运行

    我已经使用 GAE P 第一代很多年了 现在正在跳转到我的第一个 GAE P 第二代项目 我正在尝试像我一样在本地运行它dev appserver py对于第一代应用程序 但是the docs https cloud google com
  • 在 OpenCV 上使用 SVM 训练图像

    我正在尝试对图像进行分类 下一步我将根据特征进行分类 但现在只想尝试我是否做得对 这是我的代码 include
  • AspectJ:自定义 *.aj 文件被忽略

    Why aspectj maven plugin忽略我的AnnotationInheritor aj文件 是我配置有问题吗 我想提建议ItemRepository getById带有自定义注释 Repository public inter
  • 从 Visual Studio 控制台运行解决方案,无需打开 IDE

    我在用视觉工作室2010 http en wikipedia org wiki Microsoft Visual Studio Visual Studio 2010 SP1 我首先尝试的是这样的 从开始菜单打开 Visual Studio
  • SQL OVERLAPS 运算符问题,如何解决

    我预计从 2011 01 28 到 2011 02 01 的日期期间与 2011 02 01 到 2011 02 01 的日期期间重叠 这里是同一天 但确实如此不是 PostgreSQL 期望精确结束点的匹配不是匹配 如何摆脱这个 我希望将
  • 如何使用加载的 SVG 模块

    我已经设置了 webpack 将 SVG 文件加载到 create react app 的 TSX 端口中 按照这个答案 https stackoverflow com a 44718847 1399272 const logo requi
  • CSS:悬停时背景从下到上填充:

    请看一下这个例子 https www outsideonline com 2317131 wilma rudolph worlds fastest woman https www outsideonline com 2317131 wilm
  • 嵌套片段在过渡动画期间消失

    场景如下 Activity 包含片段A 这又使用getChildFragmentManager 添加片段A1 and A2 in its onCreate像这样 getChildFragmentManager beginTransactio
  • ADO.NET 实体框架和 ASP.MVC 的组合是否有可能是错误的?

    我有一个包含三个项目的解决方案 DomainModel 带有 ADO NET 实体框架的 C 库 DomainModelTest 业务逻辑单元测试 Web 应用程序 使用域模型 由于某种原因 如果我传递 DomainModel 中的任何对象
  • 使用 OpenCV 识别 HSV 中颜色的范围

    我正在使用 Python 中的 OpenCV 来识别黄色 我已经到了这一步 我必须定义黄色的下限和上限范围HSV https en wikipedia org wiki HSL and HSV 定义蓝色范围的示例 lower blue np
  • 为什么 Set 不实现 PartialFunction?

    Scala 编程 综合分步指南 第二版 第 546 页 在 Iterable 下面的继承层次结构中 您会发现三个特征 Seq 设置和地图 这三个特征的一个共同点是它们都 通过 apply 和 isDefinedAt 实现 PartialFu
  • Ninject - 如何动态选择一个实现来绑定到接口

    我目前正在使用 Ninject 在 WCF 服务应用程序中创建接口实例 Bind
  • 有理由使用真正的serialVersionUID吗?

    这个问题与以下问题完全相同 为什么生成长serialVersionUID而不是简单的1L https stackoverflow com questions 888335 why generate long serialversionuid
  • 使用模式名称创建 Postgres sqlalchemy 会话

    我可以创建与 公共 模式的 postgres sqlalchemy 连接 url postgresql scott tiger localhost 5432 mydatabase engine create engine url engin
  • hibernate中的更新与合并方法

    据我所知 如果没有其他具有相同 id 和类型的对象附加到会话 则更新用于将分离的对象置于持久状态 合并不关心状态 如果会话中不存在相同类型的持久对象 它只会返回一个持久对象 或者使用新对象的值更新旧对象 我的问题是关于数据库点击率 更新 和