From 34292c25f5940155fb01ba02ef10998b2d45cf45 Mon Sep 17 00:00:00 2001 From: Bujidao <3317431882@qq.com> Date: Thu, 5 Mar 2026 18:20:21 +0800 Subject: [PATCH] refactor(codegen): return concise root-cause message for import failures --- yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm b/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm index deb5e96..215fecb 100644 --- a/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm +++ b/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm @@ -112,7 +112,7 @@ public class ${table.className}ServiceImpl implements ${table.className}Service create${simpleClassName}(BeanUtils.toBean(importItem, ${saveReqVOClass}.class)); successCount.incrementAndGet(); } catch (Exception ex) { - failureRows.put(currentIndex, ex.getMessage()); + failureRows.put(currentIndex, resolveImportFailureMessage(ex)); } }); return ${sceneEnum.prefixClass}${table.className}ImportRespVO.builder() @@ -122,6 +122,17 @@ public class ${table.className}ServiceImpl implements ${table.className}Service .build(); } + /** + * 仅返回根因异常信息,避免把 MyBatis 长堆栈直接暴露给前端。 + */ + private String resolveImportFailureMessage(Exception ex) { + Throwable root = ex; + while (root.getCause() != null && root.getCause() != root) { + root = root.getCause(); + } + return root.getMessage() != null ? root.getMessage() : ex.getMessage(); + } + @Override ## 特殊:主子表专属逻辑(非 ERP 模式) #if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) -- libgit2 0.21.4