com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "DELAYED" "DELAYED"
at line 3, column 19.
org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException ### The error may exist in cn/com/chinatelecom/ecms/dao/dev22/NetageGetBoonMapper.xml ### The error may involve cn.com.chinatelecom.ecms.dao.dev22.NetageGetBoonMapper.selectNetageGetBoonList_COUNT ### The error occurred while handling results ### SQL: select count(0) from (select ID,PHONENUMBER,GETTIME,BOONID,BOONNAME,BOONSTATE,GEARID,GEARNAME, PRIZETYPE,DELAYED,USEDTYPE,PRIZECOUNT,PRIZETIME from T_NETAGE_GETBOON WHERE TO_CHAR(GETTIME,'YYYY-MM-DD HH24:MI:SS') >= ? AND TO_CHAR(GETTIME,'YYYY-MM-DD HH24:MI:SS') <= ?) tmp_count ### Cause: com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:77) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:446) at com.sun.proxy.$Proxy55.selectList(Unknown Source) at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:230) at org.apache.ibatis.binding.MapperMethod.executeForMany(MapperMethod.java:139) at org.apache.ibatis.binding.MapperMethod.execute(MapperMethod.java:76) at org.apache.ibatis.binding.MapperProxy.invoke(MapperProxy.java:59) at com.sun.proxy.$Proxy350.selectNetageGetBoonList(Unknown Source) at cn.com.chinatelecom.ecms.service.impl.DedicatedCustomerServiceImpl.lambda$1(DedicatedCustomerServiceImpl.java:206) at cn.com.chinatelecom.ecms.service.impl.DedicatedCustomerServiceImpl$$Lambda$202/1537737921.doSelect(Unknown Source) at com.github.pagehelper.Page.doSelectPage(Page.java:348) at cn.com.chinatelecom.ecms.service.impl.DedicatedCustomerServiceImpl.selectnetageGetBoonList(DedicatedCustomerServiceImpl.java:206) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) at com.sun.proxy.$Proxy353.selectnetageGetBoonList(Unknown Source) at cn.com.chinatelecom.ecms.controller.customer.DedicatedCustomerController.initNetageGetBoonList(DedicatedCustomerController.java:114) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:215) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:142) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:102) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:800) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1038) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:942) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:998) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:901) at javax.servlet.http.HttpServlet.service(HttpServlet.java:661) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875) at javax.servlet.http.HttpServlet.service(HttpServlet.java:742) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:127) at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:91) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:119) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:170) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:155) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:66) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.springframework.session.web.http.SessionRepositoryFilter.doFilterInternal(SessionRepositoryFilter.java:147) at org.springframework.session.web.http.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:81) at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) Caused by: org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException ### The error may exist in cn/com/chinatelecom/ecms/dao/dev22/NetageGetBoonMapper.xml ### The error may involve cn.com.chinatelecom.ecms.dao.dev22.NetageGetBoonMapper.selectNetageGetBoonList_COUNT ### The error occurred while handling results ### SQL: select count(0) from (select ID,PHONENUMBER,GETTIME,BOONID,BOONNAME,BOONSTATE,GEARID,GEARNAME, PRIZETYPE,DELAYED,USEDTYPE,PRIZECOUNT,PRIZETIME from T_NETAGE_GETBOON WHERE TO_CHAR(GETTIME,'YYYY-MM-DD HH24:MI:SS') >= ? AND TO_CHAR(GETTIME,'YYYY-MM-DD HH24:MI:SS') <= ?) tmp_count ### Cause: com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:150) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:433) ... 108 common frames omitted Caused by: com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException at com.github.pagehelper.parser.OrderByParser.converToOrderBySql(OrderByParser.java:64) at com.github.pagehelper.dialect.AbstractHelperDialect.getPageSql(AbstractHelperDialect.java:173) at com.github.pagehelper.PageHelper.getPageSql(PageHelper.java:98) at com.github.pagehelper.util.ExecutorUtil.pageQuery(ExecutorUtil.java:168) at com.github.pagehelper.PageInterceptor.intercept(PageInterceptor.java:104) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) at com.sun.proxy.$Proxy483.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:148) ... 114 common frames omitted Caused by: net.sf.jsqlparser.JSQLParserException: null at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:55) at com.github.pagehelper.parser.OrderByParser.converToOrderBySql(OrderByParser.java:52) ... 121 common frames omitted Caused by: net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "DELAYED" "DELAYED" at line 3, column 19. Was expecting one of: "(" "*" "+" "-" ":" "?" "@" "@@" "ACTION" "ANY" "CASCADE" "CASE" "CAST" "COLUMN" "COMMIT" "DO" "DOUBLE" "ENABLE" "END" "EXTRACT" "FIRST" "FOLLOWING" "GROUP_CONCAT" "IF" "INDEX" "INSERT" "INTERVAL" "KEY" "LAST" "LEFT" "MATERIALIZED" "NO" "NULL" "NULLS" "OPEN" "OVER" "PARTITION" "PERCENT" "PRECISION" "PRIMARY" "PRIOR" "RANGE" "REPLACE" "RIGHT" "ROW" "ROWS" "SEPARATOR" "SET" "SIBLINGS" "TABLE" "TEMP" "TEMPORARY" "TRUNCATE" "UNSIGNED" "VALUE" "VALUES" "XML" "{d" "{fn" "{t" "{ts" "~" <K_DATETIMELITERAL> <K_TIME_KEY_EXPR> <S_CHAR_LITERAL> <S_DOUBLE> <S_HEX> <S_IDENTIFIER> <S_LONG> <S_QUOTED_IDENTIFIER> at net.sf.jsqlparser.parser.CCJSqlParser.generateParseException(CCJSqlParser.java:18047) at net.sf.jsqlparser.parser.CCJSqlParser.jj_consume_token(CCJSqlParser.java:17900) at net.sf.jsqlparser.parser.CCJSqlParser.SelectItem(CCJSqlParser.java:3528) at net.sf.jsqlparser.parser.CCJSqlParser.SelectItemsList(CCJSqlParser.java:3368) at net.sf.jsqlparser.parser.CCJSqlParser.PlainSelect(CCJSqlParser.java:2930) at net.sf.jsqlparser.parser.CCJSqlParser.SetOperationList(CCJSqlParser.java:3107) at net.sf.jsqlparser.parser.CCJSqlParser.SelectBody(CCJSqlParser.java:2824) at net.sf.jsqlparser.parser.CCJSqlParser.Select(CCJSqlParser.java:2817) at net.sf.jsqlparser.parser.CCJSqlParser.SingleStatement(CCJSqlParser.java:133) at net.sf.jsqlparser.parser.CCJSqlParser.Statement(CCJSqlParser.java:81) at net.sf.jsqlparser.parser.CCJSqlParserUtil.parse(CCJSqlParserUtil.java:53) ... 122 common frames omitted
com.github.pagehelper.PageException: 处理排序失败: net.sf.jsqlparser.JSQLParserException
net.sf.jsqlparser.parser.ParseException: Encountered unexpected token: "DELAYED" "DELAYED" at line 3, column 19.
由于 DELAYED 是关键字,是 DELAYED 这个关键字引起的异常,两种解决方法:
1. 一般就只需要将这个关键字 去掉 不进行获取,就不报异常,
2. 可这个 DELAYED 字段,是需要进行获取出列值的表字段,
这时,就不在serviceImpl.java里面进行传递 排序,,直接在sql里面写死,就可以了,异常就解决了
代码如下:
serviceImpl.java
Page<NetageGetBoon> page = PageHelper.startPage(pageInfo.getPageNo(), pageInfo.getPageSize(), true)
.doSelectPage(() -> netageGetBoonMapper.selectByExampleOfCon(example));
// .setOrderBy("GETTIME DESC").doSelectPage(() -> netageGetBoonMapper.selectByExample(example));
pageInfo.setCount((int) page.getTotal());
return new ArrayList<>(page.getResult());
Mapper.xml
<sql id="Base_Column_List" >
ID, PHONENUMBER, GETTIME, BOONID, BOONNAME, BOONSTATE, GEARID, GEARNAME, PRIZETYPE,
DELAYED, REMARK, USEDTYPE, PRIZECOUNT, PRIZETIME
</sql>
<select id="selectByExample" resultMap="BaseResultMap" parameterType="cn.com.chinatelecom.ecms.pojo.dev22.NetageGetBoonExample" >
<!--
WARNING - @mbggenerated
This element is automatically generated by MyBatis Generator, do not modify.
-->
select
<if test="distinct" >
distinct
</if>
<include refid="Base_Column_List" />
from T_NETAGE_GETBOON
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
<!-- <if test="orderByClause != null" >
order by ${orderByClause}
</if> -->
order by GETTIME DESC
</select>