Caused by: org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
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:575)
一般这个问题是由于用了工具自动生成*.hbm.xml文件 而发生的错误,
一开始你的程序是好的,但是在你换了台机器,访问的数据库有变化时(也许用到里面的表都没有变动),可能就会出现
org.hibernate.exception.SQLGrammarException:Could not execute JDBC batch update的问题
解决方案:
把*.hbm.xml文件的 schema=" " 改为现在对应的用户
<hibernate-mapping>
<class name="com.cn.hibernate.dao.Reg" table="REG" schema="sc">
<id name="rid" column="RID" type="long">
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:142)
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:575)
一般这个问题是由于用了工具自动生成*.hbm.xml文件 而发生的错误,
一开始你的程序是好的,但是在你换了台机器,访问的数据库有变化时(也许用到里面的表都没有变动),可能就会出现
org.hibernate.exception.SQLGrammarException:Could not execute JDBC batch update的问题
解决方案:
把*.hbm.xml文件的 schema=" " 改为现在对应的用户
<hibernate-mapping>
<class name="com.cn.hibernate.dao.Reg" table="REG" schema="sc">
<id name="rid" column="RID" type="long">
<generator class="increment" />
===========分害线==========
这个问题可能是由于用户权限设置的问题,“该用户没有对表空间的访问权限导致的”,使用系统管理员用户给该用户在“限额”-设置“表空间XXX:无限制勾选”即可。