db2身份与hibernate配置(SQL错误:-142,SQLState:42612) [英] db2 identity with hibernate configuration (SQL Error: -142, SQLState: 42612)

查看:265
本文介绍了db2身份与hibernate配置(SQL错误:-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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆