使用jpa操作数据库时,配置自增主键遇到的问题

2 篇文章 0 订阅

在使用jpa操作数据库时,发现新对象无法被save,出现以下两种情况:

一、未set自增主键id的值,只set了对象的其他属性,以为save时会自动配置主键。(实际上数据库确实会帮助我们配置自增主键,前提是数据库创建时要指定主键为自增,问题便是出在这里。)

二、set自增主键的值,写了一个获取数据库当前操作表中最大id的方法,将这个最大id+1设置到新对象上并保存,jpa会提示detached entity passed to persist的错误,大概意思是jpa设置了自增属性,但我们手动设置的id与自增操作冲突了,相当于同时要保存两条数据,当然会被制止,这种情况可以将jpa实体类中@GeneratedValue(strategy = GenerationType.IDENTITY)注解去掉以解决问题。

两种问题都得到了解决。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值