Row was updated or deleted by another transaction (or unsaved-value mapping was

在使用Hibernate框架配合mysql数据库时,遇到了关于version字段的自动递增问题。当尝试手动设置该字段值进行更新操作时,系统抛出了异常。经过调查发现,此字段在更新时不应当手动设置,而是由Hibernate自动管理并递增。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在一个项目中用到Hibernate, 用的数据库是mysql。
在一个对象表中用到了字段"version", `version` int(11) DEFAULT NULL。 在对一条数据进行插入时手动设置了version的值, 没有问题。但是在对条数据进行更新操作时却报错了:
org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect):
网上搜了一下,原来是在进行更新时是不能对这个"version"字段手动设置值的。我也试验了一下,果真如此,在不给version设值的时候,每次更新时都会进行自动对这个值加1,而不需要手动设置。其实不是很明白为什么会这样,在这里暂且记录一下,有时间在研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值