hibernate的saveOrUpdate

本文深入解析Hibernate框架中saveOrUpdate方法的工作原理,阐述了该方法如何根据主键值判断执行更新或插入操作。当主键为null时执行新增,为空字符串时误触发更新,而非预期的新增。提供了解决方案,通过将新增对象的id设置为null,确保执行insert语句。

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

saveOrUpdate()方法是通过对主键的值进行判断来决定是执行update还是insert,主键是否为null,如果为null,那么新增,否则更新。主键为空字符串会执行更新而不是新增。页面的form传回id不为null是空字符串,导致hibernate认为数据库中已有此数据,执行update语句.如果我们需要强制hibernate执行insert操作,可以把新增对象的id设置为null,如:

user.setId(null);
session.saveOrUpdate(user) //将执行insert语句

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值