第一种情况:sql语句与你的取值没有一一对应或者sql语句有问题。这个就自己一一去对应了。
第二种情况:控制台信息如下:
- 2012-2-9 14:08:21 org.apache.struts.chain.ComposableRequestProcessor init
- 信息: Initializing composable request processor for module prefix ''
- 2012-2-9 14:08:21 org.apache.struts.chain.commands.servlet.CreateAction createAction
- 信息: Initialize action of type: org.springframework.web.struts.DelegatingActionProxy
- 2012-2-9 14:08:22 org.hibernate.type.NullableType nullSafeGet
- 信息: could not read column value from result set: PTID; 列名无效
- 2012-2-9 14:08:22 org.hibernate.util.JDBCExceptionReporter logExceptions
- 警告: SQL Error: 17006, SQLState: null
- 2012-2-9 14:08:22 org.hibernate.util.JDBCExceptionReporter logExceptions
- 严重: 列名无效
- org.hibernate.exception.GenericJDBCException: could not execute query
- at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
- at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
- at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
- at org.hibernate.loader.Loader.doList(Loader.java:2147)
- at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2028)
- at org.hibernate.loader.Loader.list(Loader.java:2023)
- at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289)
- at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695)
- at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142)
- at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:150)
- at adam.bp.workflow.dao.StartWorkFlowDao.getCfgPttypeObj(StartWorkFlowDao.java:121)
- at adam.bp.workflow.dao.StartWorkFlowDao$FastClassByCGLIB$2caed01b.invoke(<generated>)
- at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
- at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:700)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
- at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
- at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
- at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
- at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:635)
- at adam.bp.workflow.dao.StartWorkFlowDao$EnhancerByCGLIB$319d20c7.getCfgPttypeObj(<generated>)
- at adam.bp.workflow.biz.StartWorkFlowBiz.getCfgPttypeObj(StartWorkFlowBiz.java:98)
- at adam.bp.workflow.action.StartWorkFlowAction.queryRtuInfo(StartWorkFlowAction.java:144)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:324)
- at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:269)
- at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:170)
- at org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:166)
- at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
- at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
- at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
- at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
- at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
- at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)
- at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)
- at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
- at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
- at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:462)
- 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:237)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
- at com.adam.dev.utils.EncoderFilter.doFilter(EncoderFilter.java:36)
- at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:186)
- at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
- at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
- at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
- at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
- at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
- at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
- at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
- at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
- at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
- at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
- at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
- at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
- at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
- at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
- at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
- at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
- at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
- at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
- at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
- at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
- at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
- at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
- at java.lang.Thread.run(Thread.java:534)
- Caused by: java.sql.SQLException: 列名无效
- at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
- at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
- at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
- at oracle.jdbc.driver.OracleStatement.get_column_index(OracleStatement.java:5971)
- at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1527)
- at oracle.jdbc.driver.OracleResultSet.getLong(OracleResultSet.java:1540)
- at org.apache.commons.dbcp.DelegatingResultSet.getLong(DelegatingResultSet.java:239)
- at org.hibernate.type.LongType.get(LongType.java:28)
- at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
- at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
- at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1088)
- at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:553)
- at org.hibernate.loader.Loader.doQuery(Loader.java:689)
- at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
- at org.hibernate.loader.Loader.doList(Loader.java:2144)
- ... 65 more
错误原因分析:
-->信息: could not read column value from result set: PTID; 列名无效
说明查询出来的结果集中不包含ptid的值。
原来的代码:
String sql = "select disc from CSM_MID.CFG_PTTYPE where ptid='"+ptId+"'";
List list = this.getSession().createSQLQuery(sql).addEntity(CfgPttype.class).list();
CfgPttype cfgPttypeObj = (CfgPttype)list.get(0);
修改后正确的代码:
String sql = "select * from CSM_MID.CFG_PTTYPE where ptid='"+ptId+"'";
List list = this.getSession().createSQLQuery(sql).addEntity(CfgPttype.class).list();
CfgPttype cfgPttypeObj = (CfgPttype)list.get(0);
由以上写法可以看出,我们需要在查询的结果集中包含查询条件ptid的值。
第三种情况:用hibernate查询的时候,数据库字段名与java后台实体名字一般不会相同,对于String型,数据库varchar2()型,还可以一一对应,但是对于数据库timestamp(6)类型与实体Date类型,却不能一一对应,除了报无效列名错误,同时对于时间的那个字段报“标识符无效”的错误,比如我们常用的createtime,updatetime之类的,错误代码如下:(我这里是createtime)
[2014-10-12 00:52:11;523, 67675]INFO (NullableType.java:203) - could not read column value from result set: createtime; 列名无效
[2014-10-12 00:52:11;523, 67675]INFO (NullableType.java:203) - could not read column value from result set: createtime; 列名无效
[2014-10-12 00:52:11;526, 67678]WARN (JDBCExceptionReporter.java:100) - SQL Error: 17006, SQLState: null
[2014-10-12 00:52:11;526, 67678]WARN (JDBCExceptionReporter.java:100) - SQL Error: 17006, SQLState: null
[2014-10-12 00:52:11;527, 67679]ERROR(JDBCExceptionReporter.java:101) - 列名无效
[2014-10-12 00:52:11;526, 67678]ERROR(JDBCExceptionReporter.java:101) - 列名无效
[2014-10-12 00:52:11;551, 67703]INFO (XmlBeanDefinitionReader.java:315) - Loading XML bean definitions from class path resource [org/springframework/jdbc/support/sql-error-codes.xml]
[2014-10-12 00:52:11;579, 67731]INFO (SQLErrorCodesFactory.java:126) - SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]
[2014-10-12 00:52:11;669, 67821]ERROR(DaanSecurityInterceptor.java:95) - Hibernate operation: could not execute query; bad SQL grammar [select t.id id,t.gene gene,t.create_time ,t.displayer_order displayorder from pg_gene t]; nested exception is java.sql.SQLException: 列名无效
java.lang.Exception: Hibernate operation: could not execute query; bad SQL grammar [select t.id id,t.gene gene,t.create_time ,t.displayer_order displayorder from pg_gene t]; nested exception is java.sql.SQLException: 列名无效
at com.daanhealth.pg.core.web.struts2.DaanRoleInterceptor.doIntercept(DaanRoleInterceptor.java:104)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.daanhealth.pg.core.web.struts2.DaanSecurityInterceptor.intercept(DaanSecurityInterceptor.java:91)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)
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:236)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
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:236)
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:236)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
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:236)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)
at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
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:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
Caused by: org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: could not execute query; bad SQL grammar [select t.id id,t.gene gene,t.create_time ,t.displayer_order displayorder from pg_gene t]; nested exception is java.sql.SQLException: 列名无效
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
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:411)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:339)
at com.daanhealth.pg.core.dao.hibernate.GenericHibernateDao.findBySQLForPage(GenericHibernateDao.java:350)
at com.daanhealth.pg.service.impl.GeneServiceImpl.findGenebyName(GeneServiceImpl.java:40)
at com.daanhealth.pg.service.impl.GeneServiceImpl$$FastClassByCGLIB$$efb02b47.invoke(<generated>)
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:191)
at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:688)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
at com.daanhealth.pg.service.impl.GeneServiceImpl$$EnhancerByCGLIB$$5e1c8d2e.findGenebyName(<generated>)
at com.daanhealth.pg.action.ref.GeneAction.findGenebyName(GeneAction.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)
at com.daanhealth.pg.core.web.struts2.DaanRoleInterceptor.doIntercept(DaanRoleInterceptor.java:90)
... 66 more
Caused by: java.sql.SQLException: 列名无效
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:208)
at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3295)
at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:1914)
at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1515)
at com.mchange.v2.c3p0.impl.NewProxyResultSet.getString(NewProxyResultSet.java:3342)
at org.hibernate.type.StringType.get(StringType.java:41)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:184)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:210)
at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:501)
at org.hibernate.loader.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:447)
at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:344)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:648)
at org.hibernate.loader.Loader.doQuery(Loader.java:746)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:271)
at org.hibernate.loader.Loader.doList(Loader.java:2273)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2151)
at org.hibernate.loader.Loader.list(Loader.java:2146)
at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1832)
at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:179)
at com.daanhealth.pg.core.dao.hibernate.GenericHibernateDao$11.doInHibernate(GenericHibernateDao.java:368)
at com.daanhealth.pg.core.dao.hibernate.GenericHibernateDao$11.doInHibernate(GenericHibernateDao.java:1)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:406)
... 86 more
怎么解决呢,就是对sql语句加入别名。比如:select t.id,tiname from PG t,这是最初的sql,那么修改后的sql应该为:select *t,id id,t.name name from PG t,也就是在后面加上别名,后面的id,name是你实体的id,name。我这里是相同的,但是也可能不相同。看你数据库与实体的命名了。