{ "[]":{ "Moment":{ "@column":"userId,max(id)", "@group":"userId", "@having":"max(id)>=100" }, "count":10 }, "ok":false, "code":406, "msg":"字符 userId,max 不合法!预编译模式下 @column:\"column0,column1:alias1;function0(arg0,arg1,...);function1(...):alias2...\" 中 function 必须符合小写英文单词的 SQL 函数名格式!且必须是后端允许调用的 SQL 函数!", "debug:info|help":"浏览器打开以下链接查看解答\n\n【APIAuto】: \n http://apijson.cn/api?type=JSON&url=http%3A%2F%2Fapijson.cn%3A8080%2Fget&json=%7B%22%5B%5D%22%3A%7B%22Moment%22%3A%7B%22%40column%22%3A%22userId%2Cmax%28id%29%22%2C%22%40group%22%3A%22userId%22%2C%22%40having%22%3A%22max%28id%29%3E%3D100%22%7D%2C%22count%22%3A10%7D%7D \n\n【GitHub】: \n https://www.google.com/search?q=site%3Agithub.com%2FTencent%2FAPIJSON+++%E5%AD%97%E7%AC%A6+userId%2Cmax+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81%E9%A2%84%E7%BC%96%E8%AF%91%E6%A8%A1%E5%BC%8F%E4%B8%8B+%40column%3A%22column0%2Ccolumn1%3Aalias1%3Bfunction0%28arg0%2Carg1%2C...%29%3Bfunction1%28...%29%3Aalias2...%22+%E4%B8%AD+function+%E5%BF%85%E9%A1%BB%E7%AC%A6%E5%90%88%E5%B0%8F%E5%86%99%E8%8B%B1%E6%96%87%E5%8D%95%E8%AF%8D%E7%9A%84+SQL+%E5%87%BD%E6%95%B0%E5%90%8D%E6%A0%BC%E5%BC%8F%EF%BC%81%E4%B8%94%E5%BF%85%E9%A1%BB%E6%98%AF%E5%90%8E%E7%AB%AF%E5%85%81%E8%AE%B8%E8%B0%83%E7%94%A8%E7%9A%84+SQL+%E5%87%BD%E6%95%B0%21 \n\n【Google】:\n https://www.google.com/search?q=%E5%AD%97%E7%AC%A6+userId%2Cmax+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81%E9%A2%84%E7%BC%96%E8%AF%91%E6%A8%A1%E5%BC%8F%E4%B8%8B+%40column%3A%22column0%2Ccolumn1%3Aalias1%3Bfunction0%28arg0%2Carg1%2C...%29%3Bfunction1%28...%29%3Aalias2...%22+%E4%B8%AD+function+%E5%BF%85%E9%A1%BB%E7%AC%A6%E5%90%88%E5%B0%8F%E5%86%99%E8%8B%B1%E6%96%87%E5%8D%95%E8%AF%8D%E7%9A%84+SQL+%E5%87%BD%E6%95%B0%E5%90%8D%E6%A0%BC%E5%BC%8F%EF%BC%81%E4%B8%94%E5%BF%85%E9%A1%BB%E6%98%AF%E5%90%8E%E7%AB%AF%E5%85%81%E8%AE%B8%E8%B0%83%E7%94%A8%E7%9A%84+SQL+%E5%87%BD%E6%95%B0%21 \n\n【百度】:\n https://www.baidu.com/s?ie=UTF-8&wd=%E5%AD%97%E7%AC%A6+userId%2Cmax+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81%E9%A2%84%E7%BC%96%E8%AF%91%E6%A8%A1%E5%BC%8F%E4%B8%8B+%40column%3A%22column0%2Ccolumn1%3Aalias1%3Bfunction0%28arg0%2Carg1%2C...%29%3Bfunction1%28...%29%3Aalias2...%22+%E4%B8%AD+function+%E5%BF%85%E9%A1%BB%E7%AC%A6%E5%90%88%E5%B0%8F%E5%86%99%E8%8B%B1%E6%96%87%E5%8D%95%E8%AF%8D%E7%9A%84+SQL+%E5%87%BD%E6%95%B0%E5%90%8D%E6%A0%BC%E5%BC%8F%EF%BC%81%E4%B8%94%E5%BF%85%E9%A1%BB%E6%98%AF%E5%90%8E%E7%AB%AF%E5%85%81%E8%AE%B8%E8%B0%83%E7%94%A8%E7%9A%84+SQL+%E5%87%BD%E6%95%B0%21 \n\n都没找到答案?打开这个链接 \n https://github.com/Tencent/APIJSON/issues/new?assignees=&labels=&template=--bug.md \n然后提交问题,推荐用以下模板修改,注意要换行保持清晰可读。 \n【标题】:字符 userId,max 不合法!预编译模式下 @column:\"column0,column1:alias1;function0(arg0,arg1,...);function1(...):alias2...\" 中 function 必须符合小写英文单词的 SQL 函数名格式!且必须是后端允许调用的 SQL 函数! \n【内容】: **环境信息** \n 系统: Linux 5.10.134-19.1.al8.x86_64 \n 数据库: MYSQL 8.0.11 \n JDK: 17.0.2 amd64 \n APIJSON: 8.0.2\n\n**问题描述**\n字符 userId,max 不合法!预编译模式下 @column:\"column0,column1:alias1;function0(arg0,arg1,...);function1(...):alias2...\" 中 function 必须符合小写英文单词的 SQL 函数名格式!且必须是后端允许调用的 SQL 函数! \n\n \n\nPOST http://apijson.cn:8080/get \n发送请求 Request JSON:\n ```js \n 请填写,例如 { \"Users\":{} } \n``` \n\n返回结果 Response JSON:\n ```js \n 请填写,例如 { \"Users\": {}, \"code\": 401, \"msg\": \"Users 不允许 UNKNOWN 用户的 GET 请求!\" } \n```", "time":1772866144492, "sql:generate|cache|execute|maxExecute":"0|0|0|2000", "depth:count|max":"3|5", "time:start|duration|end|parse|sql":"1772866144491|1|1772866144492|1|0", "trace:throw":"java.lang.IllegalArgumentException", "trace:stack":[ "apijson.orm.AbstractSQLConfig.parseSQLExpression(AbstractSQLConfig.java:2508)", "apijson.orm.AbstractSQLConfig.gainColumnString(AbstractSQLConfig.java:2417)", "apijson.orm.AbstractSQLConfig.gainColumnString(AbstractSQLConfig.java:2235)", "apijson.orm.AbstractSQLConfig.gainSQL(AbstractSQLConfig.java:4977)", "apijson.orm.AbstractSQLConfig.gainSQL(AbstractSQLConfig.java:4903)", "apijson.demo.DemoSQLConfig.gainSQL(DemoSQLConfig.java:494)", "apijson.orm.AbstractSQLExecutor.execute(AbstractSQLExecutor.java:169)", "apijson.demo.DemoSQLExecutor.execute(DemoSQLExecutor.java:263)", "apijson.demo.DemoSQLExecutor.execute(DemoSQLExecutor.java:59)", "apijson.orm.AbstractParser.executeSQL(AbstractParser.java:2129)", "apijson.demo.DemoParser.executeSQL(DemoParser.java:144)", "apijson.demo.DemoParser.executeSQL(DemoParser.java:39)", "apijson.orm.AbstractObjectParser.onSQLExecute(AbstractObjectParser.java:1158)", "apijson.orm.AbstractObjectParser.executeSQL(AbstractObjectParser.java:993)", "apijson.orm.AbstractObjectParser.executeSQL(AbstractObjectParser.java:32)", "apijson.orm.AbstractParser.onObjectParse(AbstractParser.java:1292)", "apijson.orm.AbstractObjectParser.onChildParse(AbstractObjectParser.java:634)", "apijson.orm.AbstractObjectParser.parse(AbstractObjectParser.java:294)", "apijson.orm.AbstractObjectParser.parse(AbstractObjectParser.java:32)", "apijson.orm.AbstractParser.onObjectParse(AbstractParser.java:1197)", "apijson.orm.AbstractParser.onArrayParse(AbstractParser.java:1437)", "apijson.orm.AbstractObjectParser.onChildParse(AbstractObjectParser.java:597)", "apijson.orm.AbstractObjectParser.parse(AbstractObjectParser.java:294)", "apijson.orm.AbstractObjectParser.parse(AbstractObjectParser.java:32)", "apijson.orm.AbstractParser.onObjectParse(AbstractParser.java:1197)", "apijson.orm.AbstractParser.parseResponse(AbstractParser.java:588)", "apijson.framework.APIJSONParser.parseResponse(APIJSONParser.java:135)", "apijson.demo.DemoParser.parseResponse(DemoParser.java:102)", "apijson.demo.DemoParser.parseResponse(DemoParser.java:39)", "apijson.orm.AbstractParser.parseResponse(AbstractParser.java:493)", "apijson.boot.DemoController.openGet(DemoController.java:438)", "jdk.internal.reflect.GeneratedMethodAccessor18.invoke(Unknown Source)", "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)", "java.base/java.lang.reflect.Method.invoke(Method.java:568)", "org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255)", "org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188)", "org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)", "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926)", "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831)", "org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)", "org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)", "org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)", "org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)", "org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)", "jakarta.servlet.http.HttpServlet.service(HttpServlet.java:527)", "org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)", "jakarta.servlet.http.HttpServlet.service(HttpServlet.java:614)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:206)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150)", "org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150)", "org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)", "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150)", "org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)", "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150)", "org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)", "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:175)", "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:150)", "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)", "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)", "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)", "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)", "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)", "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)", "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)", "org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:391)", "org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)", "org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:896)", "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1736)", "org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)", "org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)", "org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)", "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)", "java.base/java.lang.Thread.run(Thread.java:833)" ], "@link":"http://apijson.cn:8080/api/index.html?send=false&redirect=false&type=JSON&decode=true&url=http%3A%2F%2Fapijson.cn%3A8080%2Fget&json=%7B%22%5B%5D%22%3A%7B%22count%22%3A10%2C%22Moment%22%3A%7B%22%40column%22%3A%22userId%2Cmax%28id%29%22%2C%22%40group%22%3A%22userId%22%2C%22%40having%22%3A%22max%28id%29%3E%3D100%22%7D%7D%7D" }