hibernate异常

在使用Hibernate进行数据库操作时,遇到主键被修改后再次查询抛出异常的问题。通过修改实体类实例的主键并执行保存操作,或在复制实体类实例时使用临时实例,可以解决此问题。

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

hibernate异常:

1、异常 identifier of an instance of xx was altered from 8050 to null。。。。

我遇到这个问题是这样的,
在service层查询出实体a,然后将实体a的主键置空,再次查询有关实体a的操作,然后将实体a的属性复制到新的实体b中,实体b保存到数据库,此时没有添加事务,程序正常运行;
当我在service层添加了事务的注解后,程序会抛异常,异常出现在 我再次查询实体a时。

解决办法:
修改了查询出来的实体a后,如果修改了实体a的主键,那么再次查询时会抛异常,所以,不要修改实体a的主键,如果要修改,那么要执行保存操作;
将查询出来的实体复制到一个临时的1实体上即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值