四月 11, 2017 10:31:23 上午 com.vaadin.Application terminalError
严重: Terminal error:
com.vaadin.event.ListenerMethod$MethodException
Cause: gneit.topbase.api.orm.mybatis.exception.TopMybatisDataAccessException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is org.springframework.jdbc.BadSqlGrammarException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is gneit.topbase.api.orm.mybatis.exception.TopMybatisDataAccessException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is org.springframework.jdbc.BadSqlGrammarException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:513)
at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:162)
at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1166)
at com.vaadin.ui.Tree.changeVariables(Tree.java:400)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1371)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1297)
at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:809)
at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:296)
at com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:481)
at gneit.topface.ui.gwt.servlet.AbstractTopFaceApplicationServlet.service(AbstractTopFaceApplicationServlet.java:32)
at gneit.topface.ui.gwt.servlet.TopFaceApplicationServlet.service(TopFaceApplicationServlet.java:29)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:343)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:109)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at gneit.topbase.security.web.authentication.TopDetailsSessionIdFilter.doFilter(TopDetailsSessionIdFilter.java:55)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:97)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:100)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:78)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:35)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:188)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at gneit.topbase.security.web.authentication.logout.TopLogoutFilter.doFilter(TopLogoutFilter.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:79)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:109)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:355)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:149)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:237)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:167)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Caused by: gneit.topbase.api.orm.mybatis.exception.TopMybatisDataAccessException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is org.springframework.jdbc.BadSqlGrammarException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is gneit.topbase.api.orm.mybatis.exception.TopMybatisDataAccessException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is org.springframework.jdbc.BadSqlGrammarException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
两者sql有不同,在mapper里写的sql复制到oracle里面可直接运行,但是解析后的sql复制过来到oracle里面不能运行(报错的信息:ORA_00918:column ambiguously defined),
at gneit.topbase.orm.mybatis.template.MyBatisSessionTemplate.selectPage(MyBatisSessionTemplate.java:261)
at com.htpay.report.customermanager.service.impl.CustomerLevelServiceImpl.listByParam(CustomerLevelServiceImpl.java:32)
at com.htpay.report.customermanager.provider.CustomerLevelProvider.doProvide(CustomerLevelProvider.java:32)
at gneit.topbase.data.provider.OnceDataProvider.provide(OnceDataProvider.java:65)
at gneit.topface.core.data.dataset.support.ViewDatasetPagingSupport.loadingData(ViewDatasetPagingSupport.java:153)
at gneit.topface.core.data.dataset.support.ViewDatasetPagingSupport.loadPage(ViewDatasetPagingSupport.java:96)
at gneit.topface.core.data.dataset.support.ViewDatasetPagingSupport.flushData(ViewDatasetPagingSupport.java:139)
at gneit.topface.ui.view.TopPageViewSupport.doLoadData(TopPageViewSupport.java:399)
at gneit.topface.ui.view.TopPageViewSupport.initPageView(TopPageViewSupport.java:248)
at gneit.topface.ui.view.TopPageViewSupport.init(TopPageViewSupport.java:201)
at gneit.topface.ui.view.TopPageViewSupport.build(TopPageViewSupport.java:195)
at gneit.topface.ui.factory.view.TopFacePageViewFactory.internalBuildPageView(TopFacePageViewFactory.java:340)
at gneit.topface.ui.factory.view.TopFacePageViewFactory.buildByImplementation(TopFacePageViewFactory.java:176)
at gneit.topface.ui.factory.view.TopFacePageViewFactory.build(TopFacePageViewFactory.java:145)
at gneit.topface.ui.frame.main.MainFrame$3.itemClick(MainFrame.java:249)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:493)
... 60 more
Caused by: gneit.topbase.api.orm.mybatis.exception.TopMybatisDataAccessException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
; nested exception is org.springframework.jdbc.BadSqlGrammarException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
at gneit.topbase.orm.mybatis.template.MyBatisSessionTemplate.selectPage(MyBatisSessionTemplate.java:299)
at gneit.topbase.orm.mybatis.template.MyBatisSessionTemplate.selectPage(MyBatisSessionTemplate.java:257)
... 79 more
Caused by: org.springframework.jdbc.BadSqlGrammarException: SqlSession operation; bad SQL grammar []; nested exception is java.sql.SQLException: ORA-00918: column ambiguously defined
at org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:98)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.mybatis.spring.SqlSessionTemplate.wrapException(SqlSessionTemplate.java:243)
at org.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:137)
at org.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:117)
at gneit.topbase.orm.mybatis.template.MyBatisSessionTemplate.selectPage(MyBatisSessionTemplate.java:283)
... 80 more
Caused by: java.sql.SQLException: ORA-00918: column ambiguously defined
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:743)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:796)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1031)
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:836)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1124)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:45)
at com.sun.proxy.$Proxy4.execute(Unknown Source)
at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:39)
at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:55)
at org.apache.ibatis.executor.SimpleExecutor.doQuery(SimpleExecutor.java:41)
at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:95)
at org.apache.ibatis.executor.CachingExecutor.query(CachingExecutor.java:72)
at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:78)
at org.apache.ibatis.session.defaults.DefaultSqlSession.select(DefaultSqlSession.java:68)
at gneit.topbase.orm.mybatis.template.MyBatisSessionTemplate$3.doInSqlSession(MyBatisSessionTemplate.java:290)
at gneit.topbase.orm.mybatis.template.MyBatisSessionTemplate$3.doInSqlSession(MyBatisSessionTemplate.java:1)
at org.mybatis.spring.SqlSessionTemplate.execute(SqlSessionTemplate.java:135)
... 82 more
这是解析后的sql语句: select * from (select rownum R, P.* from ( SELECT C.CORPORATION_NAME, C.CORPORATION_PAPER_TYPE, C.CORPORATION_PAPER_ID, C.depart_id, C.Customer_Name, C.CUSTOMER_AERA, C.PAPER_ID, C.PAPER_TYPE, C.BANK_NAME, T.RATING_ID, T.ELEMENT_NAME, decode(t.opr_time,null,null,to_char(to_date(t.opr_time,'yyyymmddHH24MIss'),'yyyy-MM-dd HH24:MI:ss')) as "OPR_TIME", T.OPR, T.score, T.DEPART_ID, T.RATING_DATE FROM TB_CUSTOMERS C,TB_RATING_LOG T WHERE C.CUSTOMER_ID=T.CUSTOMER_ID order by C.CUSTOMER_ID desc ) P) where R > 0 and R <= 50
这是我在mapper层写的sql:
${pageBegin}
SELECT C.CORPORATION_NAME,
C.CORPORATION_PAPER_TYPE,
C.CORPORATION_PAPER_ID,
C.depart_id,
C.Customer_Name,
C.CUSTOMER_AERA,
C.PAPER_ID,
C.PAPER_TYPE,
C.BANK_NAME,
T.RATING_ID,
T.ELEMENT_NAME,
decode(t.opr_time,null,null,to_char(to_date(t.opr_time,'yyyymmddHH24MIss'),'yyyy-MM-dd HH24:MI:ss')) as "OPR_TIME",
T.OPR,
T.score,
T.DEPART_ID,
T.RATING_DATE
FROM TB_CUSTOMERS C,TB_RATING_LOG T
WHERE C.CUSTOMER_ID=T.CUSTOMER_ID
AND C.CUSTOMER_NAME like #{CUSTOMER_NAME}
AND T.SCORE=#{SCORE}
order by C.CUSTOMER_ID desc
${pageEnd}