Hibernate: update DataApply set isOpeate=?, qingqiuyonghu=?, yanzhongchengdu=?, yingxiangdu=?, jinjidu=?, laiyuan=?, tijiaoshijian=?, wanchengshijian=?, title=?, comment=?, filePath=?, createTime=?, curUsername=?, status=?, creatorName=?, requNo=?, RequDept=?, RequPeop=?, ContTel=?, Email=?, processInstanceId=?, dataFile=?, Score=?, Times=?, Message=?, ConfigChan=?, RequTrueTime=?, RequTime=?, OrderTime=?, RequItem=?, RequObj=?, RequDetail=?, IP=?, Login=?, ITPrinc=?, ITMind=?, Replace=?, Approver=?, Essential=?, Emergency=?, Re=?, ErroCause=?, ServiceTitle=?, CI=?, EndTime=?, WorkTimes=?, ClientIde=?, OtherNote=?, NeedTime=?, Succors=?, State=?, AddToKnowledge=?, SlaMonitor=?, ResponTime=?, TransTime=?, ApproveManagers=?, ApproveStep=?, ServiceLvl=?, TableInput=?, RpManager=?, UpEngineer=?, PRI=?, RequLoca=?, Risk=? where id=?
org.hibernate.exception.SQLGrammarException: could not update: [com.skyfront.cdsm.c20.entity.DataApply#347]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2375)
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2257)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2557)
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140)
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 com.skyfront.cdsm.c20.dao.DataApplyDaoImp.addDataApply(DataApplyDaoImp.java:55)
at com.skyfront.cdsm.dataapply.action.DataApplyAction.cdsProcess(DataApplyAction.java:113)
at com.skyfront.cdsm.dataapply.action.DataApplyAction.doPost(DataApplyAction.java:183)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.skyfront.cdsm.c20.helper.GbkFilter.doFilter(GbkFilter.java:30)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 将 expression 转换为数据类型 datetime 时出现算术溢出错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.IOBuffer.processPackets(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.sendExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteUpdate(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2353)
... 33 more

解决方案 »

  1.   

    保存可以,但是update就会报这错误
      

  2.   

    写的很明显
    SQLGrammarException:
    语法错误
      

  3.   

    跟你传的值有关吧  哪个字段是datetime类型 传的值是什么?
      

  4.   

    将 expression 转换为数据类型 datetime 时出现算术溢出错误。
      

  5.   

    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 将 expression 转换为数据类型 datetime 时出现算术溢出错误。
    日期转换问题!
      

  6.   

    可以把 日期 直接处理成 varchar 
      

  7.   

    Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 将 expression 转换为数据类型 datetime 时出现算术溢出错误。