首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hibernate有关问题(org.hibernate.exception.SQLGrammarException: Could not execute JDB

2012-01-31 
请教高手Hibernate问题(org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch upd

请教高手Hibernate问题(org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update)
提示的错误内容如下:
Hibernate:   select   max(ID)   from   TGS_ENTERPRISE_COUNTINFO
Hibernate:   insert   into   TGS_ENTERPRISE_COUNTINFO   (QYZCH,   CORNAME,   CORNAME_ENG,   REG_CODE,   REG_FUNDING,   REG_DATE,   E_AREAID,   E_YWFWID,   ADDRESS,   POSTCODE,   TEL,   TEX,   EMAIL,   WEBSITE,   E_FR,   E_FR_CODE,   XUELI,   AGE,   SOFT_QYRZ,   SYS_JCZZRZ,   CMMRZ,   SOFT_RZJG,   SOFT_RZH,   SYS_RZJG,   SYS_RZH,   CMMRZ_LEVEL,   ZGDW,   ZGDW_FZR,   AUTHOR,   DATE,   CMMRZ_RZH,   ID)   values   (?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?,   ?)
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:202)
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:297)
at   org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at   org.hibernate.impl.SessionImpl.flush(SessionImpl.java:985)
at   org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:333)
at   org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at   tgcom.hibernate.yb.TgsEnterpriseCountinfoDAO.save(TgsEnterpriseCountinfoDAO.java:68)
at   tgcom.struts.yb.action.TgsEnterpriseCountinfoAction.execute(TgsEnterpriseCountinfoAction.java:42)
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:709)
at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at   org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)


at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at   java.lang.Thread.run(Thread.java:595)
Caused   by:   java.sql.BatchUpdateException:   ORA-01747:   无效的用户.表.列,表.列,或列规格

at   oracle.jdbc.dbaccess.DBError.throwBatchUpdateException(DBError.java:459)
at   oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:4210)
at   org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:58)
at   org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:195)
...   29   more
以下TgsEnterpriseCountinfo.hbm.xml
<hibernate-mapping>
        <class   name= "tgcom.hibernate.yb.TgsEnterpriseCountinfo "   table= "TGS_ENTERPRISE_COUNTINFO "   schema= "TGCOM ">
                <id   name= "id "   type= "java.lang.Long ">
                        <column   name= "ID "   precision= "10 "   scale= "0 "   />
                        <generator   class= "increment "   />
                </id>
                <property   name= "qyzch "   type= "java.lang.String ">
                        <column   name= "QYZCH "   length= "40 "   not-null= "true "   unique= "true "   />
                </property>
        </class>
</hibernate-mapping>

[解决办法]
估计是你的列名里面有关键字的原因吧,命名列的时候不要单独使用date,ID...这种关键字

热点排行