为有自增字段的实体类插入数据,报错及措施
来源:互联网 发布:地方门户系统源码 编辑:程序博客网 时间:2024/05/19 12:16
报错如下:
[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.engine.jdbc.batch.internal.AbstractBatchImpl.releaseStatements(AbstractBatchImpl.java:171)
at org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl.release(AbstractBatchImpl.java:205)
at org.hibernate.engine.jdbc.internal.JdbcCoordinatorImpl.close(JdbcCoordinatorImpl.java:183)
at org.hibernate.engine.transaction.internal.TransactionCoordinatorImpl.close(TransactionCoordinatorImpl.java:292)
at org.hibernate.internal.SessionImpl.close(SessionImpl.java:354)
at org.springframework.orm.hibernate4.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:105)
at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:160)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
解决办法:为有自增属性的字段的构造器加insertable,updateable,之后就可以不给id赋值,正常插入更新
@Column(name = "ID" ,insertable = false,updatable = false)
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
若自增字段为主键,则在get、set的@Id下加上 @GeneratedValue(strategy =GenerationType.IDENTITY)
- 为有自增字段的实体类插入数据,报错及措施
- 实体类中有主键,数据库中主键是自增的,使用linq插入记录时,由于实体类有数据产生报错的解决方法
- ORACLE 批量插入 主键为自增序列 有几个字段数据从其他表导入的 有几个是固定的
- 实体类数据类型 String类数据 插入或查询oracle 数据库中字段类型为CLOB的字段
- 【sqlserver】自增字段起始计数错误导致插入数据报错
- 业务需求:一张数据表中有自增字段,插入一条数据以后返回自增的ID值
- EOS Platform7.6实体有字段默认值为null,调用queryEntitiesByTemplate,执行报错
- 获取mysql表插入数据自增字段的值
- sql自增字段插入数据
- Hibernate注解插入有空字段实体映射类:实体类有空字段插入数据库时空属性插入为默认值
- java插入数据后返回新插入数据的id字段(自增)
- mybatis在insert时,实体类字段为null时,报错问题
- 插入数据时,实体类的克隆
- JDBC 3种获得mysql插入数据的自增字段值的方法
- JDBC 3种获得mysql插入数据的自增字段值的方法
- JDBC 3种获得mysql插入数据的自增字段值的方法
- 向含有自增字段的mysql数据库插入数据的问题
- JDBC 3种获得mysql插入数据的自增字段值的方法
- 解决apache2无法重启问题
- cookie js写法 案例模板
- vs2008 恢复命令
- 给html的<a>标签添加点击事件
- MFC串口调试助手编程辅助小资料
- 为有自增字段的实体类插入数据,报错及措施
- mark springmvc [No mapping found for HTTP request with URI]
- 千万要避免的五种程序注释方式
- LeetCode——Spiral Matrix
- 实时 Linux 架构剖析
- Qt Qprocess 启动新程序切换工作目录
- Qt 之QMediaPlayer类详解
- 卅三先生的工程电磁场讲座.EEm05——边界条件001
- ListView小知识整理:滑动背景、Item间隙等