Hibernate 的“未保存值映射不正确”是什么意思?

2024-04-21

有一个著名的例外:

org.hibernate.StaleObjectStateException:行已更新或删除 另一笔交易(或未保存值映射不正确):[my.Entity#123456]

当“行被另一个事务更新或删除”时,这是一种非常熟悉的情况。

但是另一种可能性——“未保存值映射不正确”意味着什么?又如何刻意重现这样的情况呢?

Grails 2.2.0


有关未保存值的说明,请参阅http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html#mapping-declaration-id http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/mapping.html#mapping-declaration-id:

未保存值(可选 - 默认为“合理”值): 指示实例是新的标识符属性值 实例化(未保存),将其与独立实例区分开来 在上一个会话中保存或加载。

在极少数情况下,当 saveOrUpdate() 无法确定实体是新实体还是分离实体时,Hibernate 需要这样做。

如果通过未保存的值确定一个实体是分离的,而是新的,则 hibernate 无法比较版本号(因为该实体在数据库中不存在)。但是 Hibernate 无法知道您的未保存值映射是否不正确,或者该实体是否已在另一个事务中被删除。 org.hibernate.StaleStateException 中也对此进行了描述:

当版本号或时间戳检查失败时抛出,表示 会话包含过时的数据(当使用长事务时 与版本控制)。如果我们尝试删除或更新一行,也会发生这种情况 不存在。

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

Hibernate 的“未保存值映射不正确”是什么意思? 的相关文章

随机推荐

  • Eclipse 插件:标记的自定义图标

    我想为标记指定一个自定义图标 遗憾的是 我选择的图标没有显示 以下是plugin xml 文件的相关部分 项目ID x
  • 以编程方式创建多个按钮:Android

    我知道这个问题之前已经被问过好几次了 但我无法解决我的问题 我正在尝试以编程方式添加多个按钮 我希望按钮水平对齐 但是 只显示一个按钮 到目前为止我尝试过的是 private void locationSort RelativeLayout
  • 如何使用 FileUpload 向受 Azure AD 保护的 REST API 发出 REST API 发布请求

    我有以下 net WEB API Authorize public class TenantController ApiController public async Task
  • DataGridView 单元格类型

    我有带有复选框列的 datagridview 但我希望某些列单元格是文本框单元格 一列中是否可以有多种细胞类型 如果是 那么如何 有两种方法可以做到这一点 Cast a DataGridViewCell到存在的某种细胞类型 例如 转换一个D
  • 从 PyPI 安装我的 sdist 会将文件放在意外的位置

    我的问题是 当我将 Python 包上传到 PyPI 然后使用 pip 从那里安装它时 我的应用程序会崩溃 因为它将我的文件安装到与我简单地从本地 sdist 安装完全相同的包时完全不同的位置 从本地 sdist 安装会将文件放在我的系统上
  • Unity3d 和 System.Xml.Linq

    因此 即使 Unity Editor Data Mono lib mono 2 0 System Xml Linq dll 文件存在 也会执行以下操作 using System Xml Linq 生成以下错误 命名空间 System Xml
  • 异步方法无法返回具有可访问的 GetAwaiter 方法的任何类型

    It says here https learn microsoft com en us dotnet csharp programming guide concepts async async return types 异步方法可以具有以
  • Python 列表到 pandas 数据框

    我有一个遵循以下格式的列表 a date name 10150425010245 name1 10150425020245 name2 我正在尝试将其转换为 Pandas df newlist for item in a newlist a
  • 减少单元格中/chr(10) 的换行数

    我有一张 Excel 工作表 其中的单元格具有不同数量的换行符 我想减少它 以便每个新行之间只有一个换行符 例如 HELLO WORLD GOODBYE 将修改为 HELLO WORLD GOODBYE 我已经为此绞尽脑汁好几个小时了 并想
  • 日期格式化 C#

    我在将此日期格式转换为另一种格式时遇到问题 我希望这里有人能够帮助我 这是我的代码 string fromFormat ddd dd MM yyyy HH mm ss zzz string toFormat yyyy MM dd DateT
  • 删除 DataFrame 列中仅出现一次的值

    我有一个列中具有不同值的数据框x 我想删除列中仅出现一次的值 So this x 1 10 2 30 3 30 4 40 5 40 6 50 应该变成这样 x 2 30 3 30 4 40 5 40 我想知道是否有办法做到这一点 您可以通过
  • Visual Studio 链接文件目录结构

    我有一个项目的两个版本 一种用于 Silverlight 另一种用于 NET SL 项目拥有绝大多数代码库 我想将 SL 项目中的所有文件作为链接文件全局添加到 NET 版本中 我已经在 NET 版本的 csproj 文件中成功地做到了这一
  • 变量运算符可以吗?

    有没有办法执行类似于以下任一操作 var1 10 var2 20 var operator lt console log var1 operator var2 returns true OR var1 10 var2 20 var oper
  • 如何将外部图像添加到 Github 帖子

    我想将托管在外部源上的图像添加到 Github 但当我确认将其发布时 我只看到链接 Image https ibb co kOnOrb 我使用这种格式 但它不起作用 我单击创建的链接并看到消息Non Image content type r
  • 在 lambda 函数中使用 auto self(shared_from_this()) 变量的原因是什么?

    我阅读了 boost asio http 服务器示例代码 请参阅http www boost org doc libs 1 54 0 doc html boost asio example cpp11 http server connect
  • JavaScript 多个间隔和clearInterval

    我有一个小程序 当你点击一个 条目 时 编辑模式被打开 并且该条目是为其他人锁定的编辑 每10秒发送一个ajax请求来更新表中的时间戳 entry edit click function code loopLockingVar setInt
  • ASP.NET MVC 4:更改 Javascript 中隐藏字段的值

    我有一个隐藏布尔值 field Html HiddenFor x gt x IsTurkey 在 jQuery 脚本中我尝试更改它 Html IdFor x gt x IsTurkey val False 但回发后 IsTurkey 没有改
  • 如何在GDB中运行记录指令历史记录和函数调用历史记录?

    编辑 根据下面的第一个答案 当前的 技巧 似乎正在使用 Atom 处理器 但我希望一些 gdb 专家可以回答这是否是一个基本限制 或者路线图上是否添加了对其他处理器的支持 反向执行似乎在我的环境中起作用 我可以反向继续 查看合理的记录日志
  • 将变量临时存储在一系列管道 dplyr 中

    有没有办法暂停一系列管道来存储稍后可以在管道序列中使用的临时变量 我找到了这个question https stackoverflow com questions 40369832 assign intermediate output to
  • Hibernate 的“未保存值映射不正确”是什么意思?

    有一个著名的例外 org hibernate StaleObjectStateException 行已更新或删除 另一笔交易 或未保存值映射不正确 my Entity 123456 当 行被另一个事务更新或删除 时 这是一种非常熟悉的情况