database - 无法执行 JDBC 批量更新; SQL 的未分类 SQLException

标签 database spring hibernate jdbc

我需要一些帮助,让我告诉你我的背景,我们有两个测试环境,在其中一个环境中,网络应用程序被定向到 postgres 中的一个数据库,应用程序在这里运行得很好,在我们有的另一个环境中两个数据库,一个从数据库和一个主数据库,并且在应用程序中显示与数据库相关的错误。

有一个名为discussions的表,另一个名为network_discussion,当我保存一个讨论时我立即保存到network_discussion中,但是在第二个环境中不起作用,我认为它与GRANT访问相关但显然不是,这是错误跟踪:

2012-09-15 15:10:27,162|TP-Processor12|ERROR|mp_sites|web|mpmvstage|/home/matchpoint-web/yfroot||Hibernate operation: Could not execute JDBC batch update; uncategorized SQLException for SQL [insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (?, ?, ?, ?, ?)]; SQL state [null]; error code [0]; Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted.  Call getNextException to see the cause.; nested exception is java.sql.BatchUpdateException: Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted.  Call getNextException to see the cause.
org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Could not execute JDBC batch update; uncategorized SQLException for SQL [insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (?, ?, ?, ?, ?)]; SQL state [null]; error code [0]; Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted.  Call getNextException to see the cause.; nested exception is java.sql.BatchUpdateException: Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted.  Call getNextException to see the cause.
java.sql.BatchUpdateException: Batch entry 0 insert into users.network_discussion (network_id, user_discussion_id, title, last_updated_dt, id) values (33214047252677632, 33495522229786655, company-corp.com_newdisa, 2012-09-15 15:10:27.153000 -07:00, 33495522229786656) was aborted.  Call getNextException to see the cause.
    at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2512)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1314)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:347)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2574)
    at org.apache.commons.dbcp.DelegatingStatement.executeBatch(DelegatingStatement.java:297)
    at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
    at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:235)
    at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
    at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
    at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
    at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
    at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
    at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
    at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:584)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:500)
    at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:473)
    at org.springframework.transaction.interceptor.TransactionAspectSupport.doCommitTransactionAfterReturning(TransactionAspectSupport.java:267)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
    at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:623)
    at com.netblue.matchpoint.service.DiscussionService$$EnhancerByCGLIB$$b685dad0.addOrGetDiscussions(<generated>)
    at com.netblue.matchpoint.filter.DiscussionFilter.doFilter(DiscussionFilter.java:30)
    at com.netblue.matchpoint.sitecontroller.MpBaseSiteController.getFilteredParams(MpBaseSiteContr

它继续,我的意思是错误跟踪继续更多,所以任何帮助给我一个想法都会很棒,我已经在谷歌中跟踪它,但没有结果,谢谢。

最佳答案

我实际上解决了这个问题,这真的很痛苦,但感谢上帝我可以。正如我所说,它在某些带有数据库的环境中工作,但在其他环境中不起作用,问题是我有多个保存和依赖寄存器,但第一个需要一些时间才能保存,所以当我保存时第二个寄存器(不同的表,第二个依赖于第一个)键的数据还没有保存,所以我不能像往常一样保存在级联中,因为它需要更改很多代码,因为这个不是“从零开始”的开发,所以我所做的是深入研究代码并找到数据的确切保存位置,并将另一个寄存器的保存放在那里。所以基本上,如果您正在跟踪那个奇怪的错误,那么与试图保存在数据库中的损坏数据没什么特别的。

关于database - 无法执行 JDBC 批量更新; SQL 的未分类 SQLException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12443090/

相关文章:

java - OneToMany 关系不加载集合

mysql - 从数据库导入表

c# - ASP.NET MVC 数据库访问

spring - 性能 - Spring Boot - 服务器响应时间

Spring Data JPA or spring hibernate 我需要学哪个RN

java - 必须在 servlet 上以及异步请求处理中涉及的所有过滤器上启用异步支持

database - 数据反规范化如何与微服务模式一起工作?

php - 如何找到不在这个数组中的所有记录? (MySql)

java - Spring 数据 JPA。级联更新仅适用于特殊情况

java - Hibernateflush()影响事务