org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch updat

xchen1986 2010-01-07 10:16:16
Hibernate:
/* insert com.sino.module.dmc.drugpurchase.entity.OrderForm
*/ insert
into
TEST.ORDER_FORM
(ORDER_NO, HOSPITAL_NO, HOSPITAL_NAME, DISTRIBUTOR_NO, DISTRIBUTOR_NAME, APPLY_NAME, APPLY_TIME, ORDER_TITLE, ORDER_TYPE, ORDER_LEVEL, TOTAL_AMOUNT, REMARKS, STATE, ORI_ORDER_NO)
values
(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2010-01-07 10:13:28,296 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 12704, SQLState: 72000>
2010-01-07 10:13:28,296 ERROR [org.hibernate.util.JDBCExceptionReporter] - <ORA-12704: ??????
>
2010-01-07 10:13:28,296 WARN [org.hibernate.util.JDBCExceptionReporter] - <SQL Error: 12704, SQLState: 72000>
2010-01-07 10:13:28,296 ERROR [org.hibernate.util.JDBCExceptionReporter] - <ORA-12704: ??????
>
2010-01-07 10:13:28,312 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - <Could not synchronize database state with session>
org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:420)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:694)
at com.sino.dao.hibernate.CommonDaoImpl.save(CommonDaoImpl.java:75)
at test.TestExtends.savePurchaseOrder(TestExtends.java:19)
at test.TestSession.getSessionDao(TestSession.java:53)
at test.Test.main(Test.java:14)
Caused by: java.sql.BatchUpdateException: ORA-12704: ??????

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10768)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 13 more
2010-01-07 10:13:28,328 INFO [org.springframework.beans.factory.xml.XmlBeanDefinitionReader] - <Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]>
2010-01-07 10:13:28,390 INFO [org.springframework.jdbc.support.SQLErrorCodesFactory] - <SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]>
Exception in thread "main" org.springframework.jdbc.UncategorizedSQLException: Hibernate operation: Could not execute JDBC batch update; uncategorized SQLException for SQL [/* insert com.sino.module.dmc.drugpurchase.entity.OrderForm */ insert into TEST.ORDER_FORM (ORDER_NO, HOSPITAL_NO, HOSPITAL_NAME, DISTRIBUTOR_NO, DISTRIBUTOR_NAME, APPLY_NAME, APPLY_TIME, ORDER_TITLE, ORDER_TYPE, ORDER_LEVEL, TOTAL_AMOUNT, REMARKS, STATE, ORI_ORDER_NO) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; SQL state [72000]; error code [12704]; ORA-12704: ??????
; nested exception is java.sql.BatchUpdateException: ORA-12704: ??????

at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.orm.hibernate3.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:424)
at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:410)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
at org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:694)
at com.sino.dao.hibernate.CommonDaoImpl.save(CommonDaoImpl.java:75)
at test.TestExtends.savePurchaseOrder(TestExtends.java:19)
at test.TestSession.getSessionDao(TestSession.java:53)
at test.Test.main(Test.java:14)
Caused by: java.sql.BatchUpdateException: ORA-12704: ??????

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:343)
at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10768)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:167)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:50)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028)
at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:420)
... 6 more
上面的是错误信息,不知道 为什么 我一保存 就报错 ,查询没有问题 就是添加一条数据时就报这个错误 用的是hibernate
...全文
2590 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
道光2008 2010-01-07
  • 打赏
  • 举报
回复
ava.sql.BatchUpdateException: ORA-12704: ??????

at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(Dat:

乱码
wenjjing2lianee 2010-01-07
  • 打赏
  • 举报
回复
Could not execute JDBC batch update
错误信息:
Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
原因与解决:
1.因为Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示数据库名称)这样的属性,将该属性删除就可以了
2.估计是你的列名里面有关键字的原因吧,命名列的时候不要单独使用date,ID...这种关键字

参考哈.


你能不能做个简单点的测试,构造个对象直接用hibernate插入.
看得有点晕:
2010-01-07 10:13:28,312 ERROR [org.hibernate.event.def.AbstractFlushingEventListener] - <Could not synchronize database state with session>
session与数据库不同步,也不是太懂



phoenixYiYou 2010-01-07
  • 打赏
  • 举报
回复
摘一个最经典的错误可能性给你,参考一下:
update发生异常Could not synchronize database state with session。我的主键是手动生成的,一开始调试,jsp页面的表单元素的值都被正常的封装到了Action所对应的Form的属性中,仔细一看,原来是自己粗心大意引起的。虽然在表单中hidden id了,且id的value不为空,但是提交到Action中时,news.getId()为一个新值,而不是jsp页面的hidden id的值了,究其原因,调用news.getId()时,我进行了处理,如果id属性为空,就根据当前时间重新生成一个新值,否则就返回原来的值。当我提交到Action时,news.getId()返回了一个新值,这就说明hidden id没有正确封装,将hidden 的name 改为news.id,重写启动Tomcat,update测试通过。

说了这么多,Could not synchronize database state with session这个异常引发的原因就很明显了,当企图更新一个不存在的id实体时,便发生了这样的异常。
xchen1986 2010-01-07
  • 打赏
  • 举报
回复
嘿嘿 已经解决了 是我同事用的数据库是ore8.0 ,不能定义Nvarchar类型 他设置的都是nvarchar类型的所以报错 ,谢谢 各位大哥了。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧