db2身份与hibernate配置(SQL错误:-142,SQLState:42612) [英] db2 identity with hibernate configuration (SQL Error: -142, SQLState: 42612)
问题描述
我使用DB2版本10.01,尝试使用hibernate save()方法将值插入到表中。
>Id注释:
@Id
@GeneratedValue(strategy = $ TYPE.IDENTITY)
@Basic(可选= false)
@Column(name =stmciss_id,unique = true,nullable = false)
protected int id;
Hibernate配置:
< property name =hibernate.connection.driver_class> com.ibm.db2.jcc.DB2Driver< / property>
模式中的身份创建:
STMCISS_IDINTEGER NOT NULL由DEFAULT作为IDENTITY生成(
开始与5000000
增加1
MINVALUE 1208950
MAXVALUE 2147483647
无周期
无高速缓存
无订单),
SER_NOCHAR(6)FOR SBCS DATA NOT NULL,
TSTIMESTAMP WITH DEFAULT NULL,
TS_DEFTIMESTAMP NOT NULL WITH DEFAULT,
)
如下所述获取错误:
Hibernate:insert into schema.table_name(id,cmplt_by_txt,cmplt_by_date,ts_last_updt,ts_load,ent_by_id)values(default,?,?,?,?,?)
Hibernate:values identity_val_local()
2015年5月12日3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL错误:-142,SQLState:42612
2015年5月12日3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
错误:DB2 SQL错误:SQLCODE = -142, SQLSTATE = 42612,SQLERRMC = null,DRIVER = 4.15.113
2015年5月12日3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN:SQL错误:-516 ,SQLState:26501
2015年5月12日3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
错误:DB2 SQL错误:SQLCODE = -516,SQLSTATE = 26501,SQLERRMC = null,DRIVER = 4.15.113
2015年5月12日3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN:SQL错误:-514,SQLState:26501
2015年5月12日3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
错误:DB2 SQL错误:SQLCODE = -514,SQLSTATE = 26501,SQLERRMC = SQL_CURLH200C1,DRIVER = 4.15.113
org.hibernate.exception.SQLGrammarException:无法提取ResultSet
方言从 org.hibernate.dialect.DB2Dialect更改为org.hibernate.dialect.DB2390Dialect。
上述变更工作。
上述转录完成后。下一个转录词得到以下错误:
现在,将以下错误:
[2015-05-13 10:21:01,110]错误org.hibernate.engine.jdbc.spi.SqlExceptionHelper - 无法获取连接,池错误超时等待空闲对象
[2015-05- 13 10:21:01,110]错误com.service.SerialServices - org.hibernate.exception.GenericJDBCException:无法打开连接
[2015-05-13 10:21:01,110] ERROR com.SelectAction - org.hibernate .exception.GenericJDBCException:无法打开连接
org.hibernate.exception.GenericJDBCException:无法打开连接
在org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
在org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
在org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
在org.hibernate.engine.jdbc.internal.LogicalConnect ionImpl.obtainConnection(LogicalConnectionImpl.java:235)
在org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:171)
在org.hibernate.engine.jdbc.internal。 StatementPreparerImpl.connection(StatementPreparerImpl.java:63)
在org.hibernate.engine.jdbc.internal.StatementPreparerImpl $ 5.doPrepare(StatementPreparerImpl.java:162)
在org.hibernate.engine.jdbc.internal .StatementPreparerImpl $ StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186)
在org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:160)
在org.hibernate.loader.Loader .prepareQueryStatement(Loader.java:1885)
在org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862)
在org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839 )
在org.hibernate.loader.Loader.doQuery(Loader.java:910)
在org.hibernate.loa der.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355)
在org.hibernate.loader.Loader.doList(Loader.java:2554)
在org.hibernate.loader.Loader.doList(Loader。 java:2540)
在org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370)
在org.hibernate.loader.Loader.list(Loader.java:2365)
在org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497)
在org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
在org .hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
在org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
在org.hibernate.internal .QueryImpl.list(QueryImpl.java:103)
在org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
在org.apache.struts.action .RequestProcessor.process(RequestProcessor.java:274)
在org.apache.struts.action.ActionServlet.pro cess(ActionServlet.java:1482)
在org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
在javax.servlet.http.HttpServlet.service(HttpServlet.java: 760)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
在org.apache .catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
在org.apache.catalina.core .StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
在org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at o rg.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
在org.apache。 catalina.core.StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
在org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
在org.apache.catalina。 core.ContainerBase.invoke(ContainerBase.java:995)
在org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
在org.apache.catalina.core.StandardHostValve。 invoke(StandardHostValve.java:180)
在org.apache.catalina.core.StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
在org.apache.catalina.valves.ErrorDispatcherValve.invoke( ErrorDispatcherValve.java:171)
在org.apache.catalina.core.StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
在org.apache.cata lina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
在org.apache.catalina.core.StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
在org.apache.catalina。 valve.AccessLogValve.invoke(AccessLogValve.java:577)
在org.apache.catalina.core.StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
在org.apache.catalina.core。 StandardPipeline.invoke(StandardPipeline.java:480)
在org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
在org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:174)
在org.apache.catalina.core.StandardPipeline $ StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
在org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline。 java:480)
在org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
在org.apache.coyote.tomcat4.CoyoteAdapter.se rvice(CoyoteAdapter.java:223)
在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.processConnection( Http11Protocol.java:392)
在org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
在org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable。 run(ThreadPool.java:619)
在java.lang.Thread.run(Thread.java:736)
导致:org.apache.commons.dbcp.SQLNestedException:无法获取连接,池错误超时等待空闲对象
在org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
在org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java: 1044)
在org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139)
在org.hibernate.internal.AbstractSessionImpl $ NonContextu alJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380)
在org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228)
... 63更多
导致:java.util.NoSuchElementException:等待空闲对象的超时
在org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)
在org.apache.commons.dbcp。 PoolingDataSource.getConnection(PoolingDataSource.java:106)
... 67更多
Please help on DB2 identity in Hibernate annotation.
Im using DB2 version 10.01, trying to insert values into the table using hibernate save() method.
Id annotation:
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "stmciss_id",unique=true,nullable=false)
protected int id;
Hibernate configuration:
<property name="hibernate.connection.driver_class">com.ibm.db2.jcc.DB2Driver</property>
Identity creation in the schema:
"STMCISS_ID" INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY (
START WITH 5000000
INCREMENT BY 1
MINVALUE 1208950
MAXVALUE 2147483647
NO CYCLE
NO CACHE
NO ORDER ),
"SER_NO" CHAR(6) FOR SBCS DATA NOT NULL,
"TS" TIMESTAMP WITH DEFAULT NULL,
"TS_DEF" TIMESTAMP NOT NULL WITH DEFAULT ,
)
Getting the error as mentioned below:
Hibernate: insert into schema.table_name (id, cmplt_by_txt, cmplt_by_date, ts_last_updt, ts_load, ent_by_id) values (default, ?, ?, ?, ?, ?)
Hibernate: values identity_val_local()
May 12, 2015 3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: -142, SQLState: 42612
May 12, 2015 3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: DB2 SQL Error: SQLCODE=-142, SQLSTATE=42612, SQLERRMC=null, DRIVER=4.15.113
May 12, 2015 3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: -516, SQLState: 26501
May 12, 2015 3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: DB2 SQL Error: SQLCODE=-516, SQLSTATE=26501, SQLERRMC=null, DRIVER=4.15.113
May 12, 2015 3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
WARN: SQL Error: -514, SQLState: 26501
May 12, 2015 3:21:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: DB2 SQL Error: SQLCODE=-514, SQLSTATE=26501, SQLERRMC=SQL_CURLH200C1, DRIVER=4.15.113
org.hibernate.exception.SQLGrammarException: could not extract ResultSet
it worked fine after dialect changed from org.hibernate.dialect.DB2Dialect to org.hibernate.dialect.DB2390Dialect.
The above change working.
After the above transcation done. Next transcation onwords getting the below error:
Now im geeting the below error:
[2015-05-13 10:21:01,110] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Cannot get a connection, pool error Timeout waiting for idle object
[2015-05-13 10:21:01,110] ERROR com.service.SerialServices - org.hibernate.exception.GenericJDBCException: Could not open connection
[2015-05-13 10:21:01,110] ERROR com.SelectAction - org.hibernate.exception.GenericJDBCException: Could not open connection
org.hibernate.exception.GenericJDBCException: Could not open connection
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:54)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:235)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.getConnection(LogicalConnectionImpl.java:171)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.connection(StatementPreparerImpl.java:63)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPreparerImpl.java:162)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement(StatementPreparerImpl.java:186)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(StatementPreparerImpl.java:160)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1885)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1862)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839)
at org.hibernate.loader.Loader.doQuery(Loader.java:910)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355)
at org.hibernate.loader.Loader.doList(Loader.java:2554)
at org.hibernate.loader.Loader.doList(Loader.java:2540)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370)
at org.hibernate.loader.Loader.list(Loader.java:2365)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497)
at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387)
at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:213)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2416)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:601)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:736)
Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:139)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:380)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:228)
... 63 more
Caused by: java.util.NoSuchElementException: Timeout waiting for idle object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
... 67 more
这篇关于db2身份与hibernate配置(SQL错误:-142,SQLState:42612)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!