为有自增字段的实体类插入数据,报错及措施

在尝试使用Hibernate插入包含自增ID字段的实体时,遇到错误提示'IDENTITY_INSERT 设为 OFF 时,不能为表中的标识列插入显式值'。错误源于尝试对自增列手动赋值。解决方案是在对应自增ID字段的getter和setter上设置@Column注解,参数insertable和updateable设为false,以禁止插入和更新该字段的值。此外,如果该字段为主键,应添加@Id和@GeneratedValue注解,指定GenerationType.IDENTITY,让数据库自动处理自增ID。
摘要由CSDN通过智能技术生成

报错如下:

[11-19 11:07:58] [http-bio-8080-exec-9] [ERROR][org.hibernate.engine.jdbc.spi.SqlExceptionHelper-146]-当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'TMe_MerchandiseCInfo' 中的标识列插入显式值。
[11-19 11:07:59] [http-bio-8080-exec-9] [ERROR][org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl-175]-HHH000352: Unable to release batch statement...
[11-19 11:07:59] [http-bio-8080-exec-9] [ERROR][org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl-176]-HHH000246: SQLException escaped proxy
java.sql.SQLException: org.apache.commons.dbcp.DelegatingPreparedStatement with address: "SQLServerPreparedStatement:108" is closed.
at org.apache.commons.dbcp.DelegatingStatement.checkOpen(DelegatingStatement.java:137)
at org.apache.commons.dbcp.DelegatingStatement.clearBatch(DelegatingStatement.java:294)
at org.hibernate.e

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值