From 6bf116b5001a27c31c377b4a4d05d1ebc6e4bea5 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Tue, 22 Jul 2025 21:29:10 +0800 Subject: [PATCH] =?UTF-8?q?:bug:=20=E4=BF=AE=E6=94=B9=E5=89=8D=E7=AB=AF?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../generator/core/dialect/MySqlDialect.java | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/auth-module/module-generator-code/src/main/java/com/auth/module/generator/core/dialect/MySqlDialect.java b/auth-module/module-generator-code/src/main/java/com/auth/module/generator/core/dialect/MySqlDialect.java index 912211e..fb78390 100644 --- a/auth-module/module-generator-code/src/main/java/com/auth/module/generator/core/dialect/MySqlDialect.java +++ b/auth-module/module-generator-code/src/main/java/com/auth/module/generator/core/dialect/MySqlDialect.java @@ -74,9 +74,27 @@ public class MySqlDialect implements DatabaseDialect { columnType = StringUtils.uncapitalize(columnType); return switch (columnType) { - case "double", "int", "long", "integer", "float", "decimal" -> "number"; - case "localDateTime", "date" -> "string"; - default -> columnType; + case "double", "int", "long", "integer", "float", "decimal", + "short", "byte", "bigInteger", "bigDecimal" -> "number"; + case "boolean" -> "boolean"; + case "char", "character", "string", "localDateTime", + "date", "localDate", "instant" -> "string"; + case "list", "set" -> "array"; + case "map" -> "record"; + case "void" -> "void"; + default -> { + // 处理泛型或自定义类型 + String subString = columnType.substring(columnType.indexOf("<") + 1, columnType.lastIndexOf(">")); + + if (columnType.startsWith("list<") || columnType.startsWith("set<")) { + yield "Array<" + convertToJavaScriptType(subString) + ">"; + } else if (columnType.startsWith("map<")) { + String[] parts = subString.split(","); + yield "Record<" + convertToJavaScriptType(parts[0].trim()) + "," + + convertToJavaScriptType(parts[1].trim()) + ">"; + } + yield columnType; // 默认返回原始类型 + } }; }