elunez / eladmin

eladmin jpa 版本:项目基于 Spring Boot 2.6.4、 Jpa、 Spring Security、Redis、Vue的前后端分离的后台管理系统,项目采用分模块开发方式, 权限控制采用 RBAC,支持数据字典与数据权限管理,支持一键生成前后端代码,支持动态路由
https://eladmin.vip/demo
Apache License 2.0
21.19k stars 7.34k forks source link

代码生成异常- Failed at: #if !auto && pkColumnType = "Long" [in template "generator/admin/Dto.ftl" at line 26, column 1] #481

Closed TomYule closed 4 years ago

TomYule commented 4 years ago

版本: v2.5 环境:本地 复现步骤: sql

CREATE TABLE `tc_order_return_code` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `fixed_id` varchar(32) DEFAULT NULL COMMENT '修正订单ID',
  `order_id` varchar(32) DEFAULT NULL COMMENT '订单id',
  `contract_no` varchar(20) DEFAULT NULL COMMENT '合同号',
  `brand_code` varchar(13) DEFAULT NULL COMMENT '卷烟规格代码',
  `cig_code` varchar(34) DEFAULT NULL COMMENT '32位件码',
  `send_status` varchar(1) DEFAULT NULL COMMENT '退回码段 发送状态',
  `update_time` timestamp NULL DEFAULT NULL COMMENT '数据更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='退回码段记录表'

生成代码截图 image

日志提供:

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=197 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=198 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=199 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=200 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=201 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=202 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=203 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_0_, columninfo0_.column_name as column_n2_0_0_, 
columninfo0_.column_type as column_t3_0_0_, columninfo0_.date_annotation as date_ann4_0_0_, 
columninfo0_.dict_name as dict_nam5_0_0_, columninfo0_.extra as extra6_0_0_, columninfo0_.form_show 
as form_sho7_0_0_, columninfo0_.form_type as form_typ8_0_0_, columninfo0_.key_type as key_type9_0_0_, 
columninfo0_.list_show as list_sh10_0_0_, columninfo0_.not_null as not_nul11_0_0_, columninfo0_.query_type 
as query_t12_0_0_, columninfo0_.remark as remark13_0_0_, columninfo0_.table_name as table_n14_0_0_ 
from code_column_config columninfo0_ where columninfo0_.column_id=204 

elAdmin- 2020-09-08 15:28:21 [http-nio-8000-exec-1] INFO  jdbc.sqlonly - update code_column_config set column_name='id', column_type='bigint', date_annotation=NULL, 
dict_name=NULL, extra='', form_show=1, form_type='Input', key_type='', list_show=1, not_null=0, 
query_type=NULL, remark='id', table_name='tc_order_return_code' where column_id=197 

elAdmin- 2020-09-08 15:28:22 [http-nio-8000-exec-3] INFO  jdbc.sqlonly - select genconfig0_.config_id as config_i1_1_, genconfig0_.api_alias as api_alia2_1_, genconfig0_.api_path 
as api_path3_1_, genconfig0_.author as author4_1_, genconfig0_.cover as cover5_1_, genconfig0_.module_name 
as module_n6_1_, genconfig0_.pack as pack7_1_, genconfig0_.path as path8_1_, genconfig0_.prefix 
as prefix9_1_, genconfig0_.table_name as table_n10_1_ from code_gen_config genconfig0_ where 
genconfig0_.table_name='tc_order_return_code' 

elAdmin- 2020-09-08 15:28:22 [http-nio-8000-exec-3] INFO  jdbc.sqlonly - select columninfo0_.column_id as column_i1_0_, columninfo0_.column_name as column_n2_0_, columninfo0_.column_type 
as column_t3_0_, columninfo0_.date_annotation as date_ann4_0_, columninfo0_.dict_name as dict_nam5_0_, 
columninfo0_.extra as extra6_0_, columninfo0_.form_show as form_sho7_0_, columninfo0_.form_type 
as form_typ8_0_, columninfo0_.key_type as key_type9_0_, columninfo0_.list_show as list_sh10_0_, 
columninfo0_.not_null as not_nul11_0_, columninfo0_.query_type as query_t12_0_, columninfo0_.remark 
as remark13_0_, columninfo0_.table_name as table_n14_0_ from code_column_config columninfo0_ 
where columninfo0_.table_name='tc_order_return_code' order by columninfo0_.column_id asc 

elAdmin- 2020-09-08 15:28:22 [http-nio-8000-exec-3] ERROR freemarker.runtime - Error executing FreeMarker template
freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> pkColumnType  [in template "generator/admin/Dto.ftl" at line 26, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
    - Failed at: #if !auto && pkColumnType = "Long"  [in template "generator/admin/Dto.ftl" at line 26, column 1]
----
    at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
    at freemarker.core.EvalUtil.compare(EvalUtil.java:198)
    at freemarker.core.EvalUtil.compare(EvalUtil.java:115)
    at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62)
    at freemarker.core.AndExpression.evalToBoolean(AndExpression.java:36)
    at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
    at freemarker.core.Environment.visit(Environment.java:330)
    at freemarker.core.Environment.visit(Environment.java:336)
    at freemarker.core.Environment.process(Environment.java:309)
    at freemarker.template.Template.process(Template.java:384)
    at cn.hutool.extra.template.engine.freemarker.FreemarkerTemplate.render(FreemarkerTemplate.java:46)
    at com.icss.utils.GenUtil.genFile(GenUtil.java:411)
    at com.icss.utils.GenUtil.generatorCode(GenUtil.java:165)
    at com.icss.service.impl.GeneratorServiceImpl.generator(GeneratorServiceImpl.java:173)
    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:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206)
    at com.sun.proxy.$Proxy201.generator(Unknown Source)
    at com.icss.rest.GeneratorController.generator(GeneratorController.java:96)
    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:498)
    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:660)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    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:53)
    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.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    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:124)
    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 com.icss.modules.security.security.TokenFilter.doFilter(TokenFilter.java:90)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
    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.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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
elAdmin- 2020-09-08 15:28:22 [http-nio-8000-exec-3] ERROR c.i.e.handler.GlobalExceptionHandler - java.lang.RuntimeException: cn.hutool.extra.template.TemplateException: InvalidReferenceException: The following has evaluated to null or missing:
==> pkColumnType  [in template "generator/admin/Dto.ftl" at line 26, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
    - Failed at: #if !auto && pkColumnType = "Long"  [in template "generator/admin/Dto.ftl" at line 26, column 1]
----
    at com.icss.utils.GenUtil.genFile(GenUtil.java:413)
    at com.icss.utils.GenUtil.generatorCode(GenUtil.java:165)
    at com.icss.service.impl.GeneratorServiceImpl.generator(GeneratorServiceImpl.java:173)
    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:498)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:206)
    at com.sun.proxy.$Proxy201.generator(Unknown Source)
    at com.icss.rest.GeneratorController.generator(GeneratorController.java:96)
    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:498)
    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:660)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:875)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    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:53)
    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.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
    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:124)
    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 com.icss.modules.security.security.TokenFilter.doFilter(TokenFilter.java:90)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334)
    at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)
    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.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.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:770)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Caused by: cn.hutool.extra.template.TemplateException: InvalidReferenceException: The following has evaluated to null or missing:
==> pkColumnType  [in template "generator/admin/Dto.ftl" at line 26, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
    - Failed at: #if !auto && pkColumnType = "Long"  [in template "generator/admin/Dto.ftl" at line 26, column 1]
----
    at cn.hutool.extra.template.engine.freemarker.FreemarkerTemplate.render(FreemarkerTemplate.java:48)
    at com.icss.utils.GenUtil.genFile(GenUtil.java:411)
    ... 93 more
Caused by: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> pkColumnType  [in template "generator/admin/Dto.ftl" at line 26, column 15]

----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
    - Failed at: #if !auto && pkColumnType = "Long"  [in template "generator/admin/Dto.ftl" at line 26, column 1]
----
    at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
    at freemarker.core.EvalUtil.compare(EvalUtil.java:198)
    at freemarker.core.EvalUtil.compare(EvalUtil.java:115)
    at freemarker.core.ComparisonExpression.evalToBoolean(ComparisonExpression.java:62)
    at freemarker.core.AndExpression.evalToBoolean(AndExpression.java:36)
    at freemarker.core.ConditionalBlock.accept(ConditionalBlock.java:48)
    at freemarker.core.Environment.visit(Environment.java:330)
    at freemarker.core.Environment.visit(Environment.java:336)
    at freemarker.core.Environment.process(Environment.java:309)
    at freemarker.template.Template.process(Template.java:384)
    at cn.hutool.extra.template.engine.freemarker.FreemarkerTemplate.render(FreemarkerTemplate.java:46)
    ... 94 more
TomYule commented 4 years ago

更新之后 再生成代码 解决了 应该是缓存了 表结构 数据

godwinnnnn commented 1 year ago

更新之后 再生成代码 解决了 应该是缓存了 表结构 数据

我现在拷贝最新的代码,然后使用代码生成的时候,还是出现同样的问题,可以麻烦看看吗?感谢 image 这是网页里面报错的提示,如下:

cn.hutool.extra.template.TemplateException: InvalidReferenceException: The following has evaluated to null or missing: ==> pkColumnType [in template "admin/Dto.ftl" at line 26, column 15] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #if !auto && pkColumnType = "Long" [in template "admin/Dto.ftl" at line 26, column 1] ----