{ "[]":{ "Moment":{ "@column":"userId;max(id):maxId", "@group":"userId", "@having":"maxId>=100" }, "count":10 }, "ok":false, "code":406, "msg":"Moment:{ @having:value } 里的 value 中的第 0 个字符 'maxId>=100' 不合法!里面没有包含 SQL 函数!必须为 fun(col1,col2..)?val 格式!", "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%3Bmax%28id%29%3AmaxId%22%2C%22%40group%22%3A%22userId%22%2C%22%40having%22%3A%22maxId%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+++Moment%3A%7B+%40having%3Avalue+%7D+%E9%87%8C%E7%9A%84+value+%E4%B8%AD%E7%9A%84%E7%AC%AC+0+%E4%B8%AA%E5%AD%97%E7%AC%A6+%27maxId%3E%3D100%27+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81%E9%87%8C%E9%9D%A2%E6%B2%A1%E6%9C%89%E5%8C%85%E5%90%AB+SQL+%E5%87%BD%E6%95%B0%EF%BC%81%E5%BF%85%E9%A1%BB%E4%B8%BA+fun%28col1%2Ccol2..%29%3Fval+%E6%A0%BC%E5%BC%8F%EF%BC%81 \n\n【Google】:\n https://www.google.com/search?q=Moment%3A%7B+%40having%3Avalue+%7D+%E9%87%8C%E7%9A%84+value+%E4%B8%AD%E7%9A%84%E7%AC%AC+0+%E4%B8%AA%E5%AD%97%E7%AC%A6+%27maxId%3E%3D100%27+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81%E9%87%8C%E9%9D%A2%E6%B2%A1%E6%9C%89%E5%8C%85%E5%90%AB+SQL+%E5%87%BD%E6%95%B0%EF%BC%81%E5%BF%85%E9%A1%BB%E4%B8%BA+fun%28col1%2Ccol2..%29%3Fval+%E6%A0%BC%E5%BC%8F%EF%BC%81 \n\n【百度】:\n https://www.baidu.com/s?ie=UTF-8&wd=Moment%3A%7B+%40having%3Avalue+%7D+%E9%87%8C%E7%9A%84+value+%E4%B8%AD%E7%9A%84%E7%AC%AC+0+%E4%B8%AA%E5%AD%97%E7%AC%A6+%27maxId%3E%3D100%27+%E4%B8%8D%E5%90%88%E6%B3%95%EF%BC%81%E9%87%8C%E9%9D%A2%E6%B2%A1%E6%9C%89%E5%8C%85%E5%90%AB+SQL+%E5%87%BD%E6%95%B0%EF%BC%81%E5%BF%85%E9%A1%BB%E4%B8%BA+fun%28col1%2Ccol2..%29%3Fval+%E6%A0%BC%E5%BC%8F%EF%BC%81 \n\n都没找到答案?打开这个链接 \n https://github.com/Tencent/APIJSON/issues/new?assignees=&labels=&template=--bug.md \n然后提交问题,推荐用以下模板修改,注意要换行保持清晰可读。 \n【标题】:Moment:{ @having:value } 里的 value 中的第 0 个字符 'maxId>=100' 不合法!里面没有包含 SQL 函数!必须为 fun(col1,col2..)?val 格式! \n【内容】: \n **环境信息** \n 系统: Linux 5.10.134-16.3.al8.x86_64 \n 数据库: \n JDK: 17.0.2 amd64 \n APIJSON: 7.0.3\n\n**问题描述**\nMoment:{ @having:value } 里的 value 中的第 0 个字符 'maxId>=100' 不合法!里面没有包含 SQL 函数!必须为 fun(col1,col2..)?val 格式! \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":1732448738737, "sql:generate|cache|execute|maxExecute":"0|0|0|2000", "depth:count|max":"3|5", "time:start|duration|end|parse|sql":"1732448738736|1|1732448738737|1|0", "trace:throw":"java.lang.IllegalArgumentException", "trace:stack":[{ "className":"apijson.orm.AbstractSQLConfig", "fileName":"AbstractSQLConfig.java", "lineNumber":5619, "methodName":"newSQLConfig", "nativeMethod":false },{ "className":"apijson.framework.APIJSONSQLConfig", "fileName":"APIJSONSQLConfig.java", "lineNumber":232, "methodName":"newSQLConfig", "nativeMethod":false },{ "className":"apijson.demo.DemoObjectParser", "fileName":"DemoObjectParser.java", "lineNumber":42, "methodName":"newSQLConfig", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":898, "methodName":"newSQLConfig", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":920, "methodName":"setSQLConfig", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":39, "methodName":"setSQLConfig", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1216, "methodName":"onObjectParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":597, "methodName":"onChildParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":283, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":39, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1127, "methodName":"onObjectParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1356, "methodName":"onArrayParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":560, "methodName":"onChildParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":283, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractObjectParser", "fileName":"AbstractObjectParser.java", "lineNumber":39, "methodName":"parse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":1127, "methodName":"onObjectParse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":529, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.framework.APIJSONParser", "fileName":"APIJSONParser.java", "lineNumber":117, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.demo.DemoParser", "fileName":"DemoParser.java", "lineNumber":90, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.orm.AbstractParser", "fileName":"AbstractParser.java", "lineNumber":444, "methodName":"parseResponse", "nativeMethod":false },{ "className":"apijson.boot.DemoController", "fileName":"DemoController.java", "lineNumber":458, "methodName":"openGet", "nativeMethod":false },{ "className":"jdk.internal.reflect.GeneratedMethodAccessor144", "lineNumber":-1, "methodName":"invoke", "nativeMethod":false },{ "className":"jdk.internal.reflect.DelegatingMethodAccessorImpl", "fileName":"DelegatingMethodAccessorImpl.java", "lineNumber":43, "methodName":"invoke", "moduleName":"java.base", "moduleVersion":"17.0.2", "nativeMethod":false },{ "className":"java.lang.reflect.Method", "fileName":"Method.java", "lineNumber":568, "methodName":"invoke", "moduleName":"java.base", "moduleVersion":"17.0.2", "nativeMethod":false },{ "className":"org.springframework.web.method.support.InvocableHandlerMethod", "fileName":"InvocableHandlerMethod.java", "lineNumber":255, "methodName":"doInvoke", "nativeMethod":false },{ "className":"org.springframework.web.method.support.InvocableHandlerMethod", "fileName":"InvocableHandlerMethod.java", "lineNumber":188, "methodName":"invokeForRequest", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod", "fileName":"ServletInvocableHandlerMethod.java", "lineNumber":118, "methodName":"invokeAndHandle", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter", "fileName":"RequestMappingHandlerAdapter.java", "lineNumber":926, "methodName":"invokeHandlerMethod", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter", "fileName":"RequestMappingHandlerAdapter.java", "lineNumber":831, "methodName":"handleInternal", "nativeMethod":false },{ "className":"org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter", "fileName":"AbstractHandlerMethodAdapter.java", "lineNumber":87, "methodName":"handle", "nativeMethod":false },{ "className":"org.springframework.web.servlet.DispatcherServlet", "fileName":"DispatcherServlet.java", "lineNumber":1089, "methodName":"doDispatch", "nativeMethod":false },{ "className":"org.springframework.web.servlet.DispatcherServlet", "fileName":"DispatcherServlet.java", "lineNumber":979, "methodName":"doService", "nativeMethod":false },{ "className":"org.springframework.web.servlet.FrameworkServlet", "fileName":"FrameworkServlet.java", "lineNumber":1014, "methodName":"processRequest", "nativeMethod":false },{ "className":"org.springframework.web.servlet.FrameworkServlet", "fileName":"FrameworkServlet.java", "lineNumber":903, "methodName":"doGet", "nativeMethod":false },{ "className":"jakarta.servlet.http.HttpServlet", "fileName":"HttpServlet.java", "lineNumber":527, "methodName":"service", "nativeMethod":false },{ "className":"org.springframework.web.servlet.FrameworkServlet", "fileName":"FrameworkServlet.java", "lineNumber":885, "methodName":"service", "nativeMethod":false },{ "className":"jakarta.servlet.http.HttpServlet", "fileName":"HttpServlet.java", "lineNumber":614, "methodName":"service", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":206, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.tomcat.websocket.server.WsFilter", "fileName":"WsFilter.java", "lineNumber":51, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.springframework.web.filter.RequestContextFilter", "fileName":"RequestContextFilter.java", "lineNumber":100, "methodName":"doFilterInternal", "nativeMethod":false },{ "className":"org.springframework.web.filter.OncePerRequestFilter", "fileName":"OncePerRequestFilter.java", "lineNumber":116, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.springframework.web.filter.FormContentFilter", "fileName":"FormContentFilter.java", "lineNumber":93, "methodName":"doFilterInternal", "nativeMethod":false },{ "className":"org.springframework.web.filter.OncePerRequestFilter", "fileName":"OncePerRequestFilter.java", "lineNumber":116, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.springframework.web.filter.CharacterEncodingFilter", "fileName":"CharacterEncodingFilter.java", "lineNumber":201, "methodName":"doFilterInternal", "nativeMethod":false },{ "className":"org.springframework.web.filter.OncePerRequestFilter", "fileName":"OncePerRequestFilter.java", "lineNumber":116, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":175, "methodName":"internalDoFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.ApplicationFilterChain", "fileName":"ApplicationFilterChain.java", "lineNumber":150, "methodName":"doFilter", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardWrapperValve", "fileName":"StandardWrapperValve.java", "lineNumber":167, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardContextValve", "fileName":"StandardContextValve.java", "lineNumber":90, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.authenticator.AuthenticatorBase", "fileName":"AuthenticatorBase.java", "lineNumber":482, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardHostValve", "fileName":"StandardHostValve.java", "lineNumber":115, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.valves.ErrorReportValve", "fileName":"ErrorReportValve.java", "lineNumber":93, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.core.StandardEngineValve", "fileName":"StandardEngineValve.java", "lineNumber":74, "methodName":"invoke", "nativeMethod":false },{ "className":"org.apache.catalina.connector.CoyoteAdapter", "fileName":"CoyoteAdapter.java", "lineNumber":344, "methodName":"service", "nativeMethod":false },{ "className":"org.apache.coyote.http11.Http11Processor", "fileName":"Http11Processor.java", "lineNumber":391, "methodName":"service", "nativeMethod":false },{ "className":"org.apache.coyote.AbstractProcessorLight", "fileName":"AbstractProcessorLight.java", "lineNumber":63, "methodName":"process", "nativeMethod":false },{ "className":"org.apache.coyote.AbstractProtocol$ConnectionHandler", "fileName":"AbstractProtocol.java", "lineNumber":896, "methodName":"process", "nativeMethod":false },{ "className":"org.apache.tomcat.util.net.NioEndpoint$SocketProcessor", "fileName":"NioEndpoint.java", "lineNumber":1736, "methodName":"doRun", "nativeMethod":false },{ "className":"org.apache.tomcat.util.net.SocketProcessorBase", "fileName":"SocketProcessorBase.java", "lineNumber":52, "methodName":"run", "nativeMethod":false },{ "className":"org.apache.tomcat.util.threads.ThreadPoolExecutor", "fileName":"ThreadPoolExecutor.java", "lineNumber":1191, "methodName":"runWorker", "nativeMethod":false },{ "className":"org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker", "fileName":"ThreadPoolExecutor.java", "lineNumber":659, "methodName":"run", "nativeMethod":false },{ "className":"org.apache.tomcat.util.threads.TaskThread$WrappingRunnable", "fileName":"TaskThread.java", "lineNumber":63, "methodName":"run", "nativeMethod":false },{ "className":"java.lang.Thread", "fileName":"Thread.java", "lineNumber":833, "methodName":"run", "moduleName":"java.base", "moduleVersion":"17.0.2", "nativeMethod":false }], "@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%3Bmax%28id%29%3AmaxId%22%2C%22%40group%22%3A%22userId%22%2C%22%40having%22%3A%22maxId%3E%3D100%22%7D%7D%7D" }