Commit 34292c25f5940155fb01ba02ef10998b2d45cf45
1 parent
c1cc6b48
refactor(codegen): return concise root-cause message for import failures
Showing
1 changed file
with
12 additions
and
1 deletions
yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm
| ... | ... | @@ -112,7 +112,7 @@ public class ${table.className}ServiceImpl implements ${table.className}Service |
| 112 | 112 | create${simpleClassName}(BeanUtils.toBean(importItem, ${saveReqVOClass}.class)); |
| 113 | 113 | successCount.incrementAndGet(); |
| 114 | 114 | } catch (Exception ex) { |
| 115 | - failureRows.put(currentIndex, ex.getMessage()); | |
| 115 | + failureRows.put(currentIndex, resolveImportFailureMessage(ex)); | |
| 116 | 116 | } |
| 117 | 117 | }); |
| 118 | 118 | return ${sceneEnum.prefixClass}${table.className}ImportRespVO.builder() |
| ... | ... | @@ -122,6 +122,17 @@ public class ${table.className}ServiceImpl implements ${table.className}Service |
| 122 | 122 | .build(); |
| 123 | 123 | } |
| 124 | 124 | |
| 125 | + /** | |
| 126 | + * 仅返回根因异常信息,避免把 MyBatis 长堆栈直接暴露给前端。 | |
| 127 | + */ | |
| 128 | + private String resolveImportFailureMessage(Exception ex) { | |
| 129 | + Throwable root = ex; | |
| 130 | + while (root.getCause() != null && root.getCause() != root) { | |
| 131 | + root = root.getCause(); | |
| 132 | + } | |
| 133 | + return root.getMessage() != null ? root.getMessage() : ex.getMessage(); | |
| 134 | + } | |
| 135 | + | |
| 125 | 136 | @Override |
| 126 | 137 | ## 特殊:主子表专属逻辑(非 ERP 模式) |
| 127 | 138 | #if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) | ... | ... |