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

Hibernate联接oracle 执行插入时报错

2012-12-17 
Hibernate连接oracle 执行插入时报错oracle中创建了sequencehbm.xml中也配置了id namebatchid typel

Hibernate连接oracle 执行插入时报错
oracle中创建了sequence
hbm.xml中也配置了
<id name="batchid" type="long">
            <column name="batchid" precision="10" scale="0" />
            <generator class="sequence">
            <param name="sequence">practice_batch_seq</param>
            </generator>
        </id>
“practice_batch_seq”是序列名
反射生成的对象PracticeBatch
private long batchid;
private String batch;
private Date createtime;
private String creator;
private String creatorIp;
private Date starttime;
private Date endtime;

执行session.save(pbatch)时报错,
org.springframework.dao.InvalidDataAccessResourceUsageException: Could not execute JDBC batch update; SQL [insert into PRACTICE_BATCH (batch, createtime, creator, creator_ip, starttime, endtime, batchid) values (?, ?, ?, ?, ?, ?, ?)]; nested exception is org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update

我并没有对batchid传值,batchid是主键,自增

这是什么问题,在网上查了很久,都没有解决,哪位大神能帮帮忙。
[最优解释]
能有详细一点的异常信息吗?

[其他解释]
  +-[IDENT] IdentNode: '{synthetic-alias}'
       
[其他解释]
  \-[IDENT] IdentNode: 'endtime'
       \-[DESCENDING] SqlNode: 'desc'

16:30:12,812 DEBUG ErrorCounter:91 - throwQueryException() : no errors
16:30:12,842 DEBUG QueryTranslatorImpl:241 - HQL: from po.PracticeBatch order by endtime desc
16:30:12,842 DEBUG QueryTranslatorImpl:242 - SQL: select practiceba0_.batchid as batchid0_, practiceba0_.batch as batch0_, practiceba0_.createtime as createtime0_, practiceba0_.creator as creator0_, practiceba0_.creator_ip as creator5_0_, practiceba0_.starttime as starttime0_, practiceba0_.endtime as endtime0_ from PRACTICE_BATCH practiceba0_ order by practiceba0_.endtime desc
16:30:12,843 DEBUG ErrorCounter:91 - throwQueryException() : no errors
16:30:12,856 DEBUG AbstractBatcher:410 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
16:30:12,856 DEBUG ConnectionManager:444 - opening JDBC connection
16:30:12,858 DEBUG SQL:111 - select practiceba0_.batchid as batchid0_, practiceba0_.batch as batch0_, practiceba0_.createtime as createtime0_, practiceba0_.creator as creator0_, practiceba0_.creator_ip as creator5_0_, practiceba0_.starttime as starttime0_, practiceba0_.endtime as endtime0_ from PRACTICE_BATCH practiceba0_ order by practiceba0_.endtime desc
16:30:12,915 DEBUG AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)


16:30:12,930 DEBUG JDBCExceptionReporter:92 - could not execute query [select practiceba0_.batchid as batchid0_, practiceba0_.batch as batch0_, practiceba0_.createtime as createtime0_, practiceba0_.creator as creator0_, practiceba0_.creator_ip as creator5_0_, practiceba0_.starttime as starttime0_, practiceba0_.endtime as endtime0_ from PRACTICE_BATCH practiceba0_ order by practiceba0_.endtime desc]
[其他解释]
是不是你的sql有问题。为字符串却用了数字值类型
[其他解释]
我直接使用session.save(),并没有写sql  里面的值都是通过set方法设置,添加的是对象
[其他解释]
这是log4j的记录

16:30:10,093 DEBUG SessionImpl:248 - opened session at timestamp: 13518450099
16:30:10,181 DEBUG AbstractBatcher:410 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
16:30:10,183 DEBUG ConnectionManager:444 - opening JDBC connection
16:30:10,194 DEBUG SQL:111 - select REALNAME from BASE_USER  where USERNAME=?
16:30:10,543 DEBUG Loader:1772 - bindNamedParameters() liyj -> id [1]
16:30:10,574 DEBUG AbstractBatcher:426 - about to open ResultSet (open ResultSets: 0, globally: 0)
16:30:10,587 DEBUG Loader:1197 - result row: 
16:30:10,589 DEBUG AbstractBatcher:433 - about to close ResultSet (open ResultSets: 1, globally: 1)
16:30:10,590 DEBUG AbstractBatcher:418 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
16:30:10,594 DEBUG StatefulPersistenceContext:860 - initializing non-lazy collections
16:30:10,600 DEBUG ConnectionManager:325 - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
16:30:10,600 DEBUG ConnectionManager:464 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
16:30:10,603 DEBUG ConnectionManager:325 - transaction completed on session with on_close connection release mode; be sure to close the session to release JDBC resources!
16:30:12,134 DEBUG SessionImpl:248 - opened session at timestamp: 13518450121
16:30:12,602 DEBUG QueryTranslatorImpl:272 - parse() - HQL: from po.PracticeBatch order by endtime desc
16:30:12,625 DEBUG AST:291 - --- HQL AST ---
 \-[QUERY] 'query'
    +-[SELECT_FROM] 'SELECT_FROM'
    
[其他解释]
  \-[FROM] 'from'
    
[其他解释]
     \-[RANGE] 'RANGE'
    
------其他解决方案--------------------


        \-[DOT] '.'
    
[其他解释]
           +-[IDENT] 'po'
    
[其他解释]
           \-[IDENT] 'PracticeBatch'
    \-[ORDER] 'order'
       +-[IDENT] 'endtime'
       \-[DESCENDING] 'desc'

16:30:12,626 DEBUG ErrorCounter:91 - throwQueryException() : no errors
16:30:12,721 DEBUG HqlSqlBaseWalker:111 - select << begin [level=1, statement=select]
16:30:12,763 DEBUG FromElement:132 - FromClause{level=1} :  po.PracticeBatch (no alias) -> practiceba0_
16:30:12,768 DEBUG FromReferenceNode:74 - Resolved :  {synthetic-alias} -> {synthetic-alias}
16:30:12,773 DEBUG DotNode:619 - getDataType() : endtime -> org.hibernate.type.DateType@8c39d7
16:30:12,778 DEBUG FromReferenceNode:74 - Resolved :  {synthetic-alias}.endtime -> practiceba0_.endtime
16:30:12,778 DEBUG HqlSqlBaseWalker:117 - select : finishing up [level=1, statement=select]
16:30:12,779 DEBUG HqlSqlWalker:599 - processQuery() :  ( SELECT ( FromClause{level=1} PRACTICE_BATCH practiceba0_ ) ( order ( practiceba0_.endtime {synthetic-alias} endtime ) desc ) )
16:30:12,795 DEBUG HqlSqlWalker:842 - Derived SELECT clause created.
16:30:12,810 DEBUG JoinProcessor:176 - Using FROM fragment [PRACTICE_BATCH practiceba0_]
16:30:12,811 DEBUG HqlSqlBaseWalker:123 - select >> end [level=1, statement=select]
16:30:12,812 DEBUG AST:258 - --- SQL AST ---
 \-[SELECT] QueryNode: 'SELECT'  querySpaces (PRACTICE_BATCH)
    +-[SELECT_CLAUSE] SelectClause: '{derived select clause}'
    
[其他解释]
  +-[SELECT_EXPR] SelectExpressionImpl: 'practiceba0_.batchid as batchid0_'
    
[其他解释]
  \-[SQL_TOKEN] SqlFragment: 'practiceba0_.batch as batch0_, practiceba0_.createtime as createtime0_, practiceba0_.creator as creator0_, practiceba0_.creator_ip as creator5_0_, practiceba0_.starttime as starttime0_, practiceba0_.endtime as endtime0_'
    +-[FROM] FromClause: 'from' FromClause{level=1, fromElementCounter=1, fromElements=1, fromElementByClassAlias=[], fromElementByTableAlias=[practiceba0_], fromElementsByPath=[], collectionJoinFromElementsByPath=[], impliedElements=[]}
    
[其他解释]
  \-[FROM_FRAGMENT] FromElement: 'PRACTICE_BATCH practiceba0_' FromElement{explicit,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=null,role=null,tableName=PRACTICE_BATCH,tableAlias=practiceba0_,origin=null,colums={,className=po.PracticeBatch}}


    \-[ORDER] OrderByClause: 'order'
       +-[DOT] DotNode: 'practiceba0_.endtime'
       
[其他解释]
java.sql.SQLException: ORA-00904: "PRACTICEBA0_"."ENDTIME": invalid identifier

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:810)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1039)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:850)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1134)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3339)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3384)
at org.apache.commons.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:93)
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
at org.hibernate.loader.Loader.getResultSet(Loader.java:1812)
at org.hibernate.loader.Loader.doQuery(Loader.java:697)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2232)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at dao.impl.PracticeBatchDAOImpl.findAllBatchs(PracticeBatchDAOImpl.java:89)
at service.impl.managerServiceImpl.showBatchs(managerServiceImpl.java:36)
at action.manager.ShowBatchesAction.showBatches(ShowBatchesAction.java:54)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:165)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)


at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)


at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)

热点排行