From fc44cd89c2b3b0a06ca6b818ec3880c5dd53c7be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moshow=E9=83=91=E9=94=B4?= Date: Sun, 7 Dec 2025 21:08:24 +0800 Subject: [PATCH] =?UTF-8?q?2025-12-07=20zhengkai=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=AF=B9primary=20key=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/parser/SqlParserServiceImpl.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/softdev/system/generator/service/impl/parser/SqlParserServiceImpl.java b/src/main/java/com/softdev/system/generator/service/impl/parser/SqlParserServiceImpl.java index e62e1f3..dcace20 100644 --- a/src/main/java/com/softdev/system/generator/service/impl/parser/SqlParserServiceImpl.java +++ b/src/main/java/com/softdev/system/generator/service/impl/parser/SqlParserServiceImpl.java @@ -305,6 +305,7 @@ public class SqlParserServiceImpl implements SqlParserService { // 2019-2-22 zhengkai 要在条件中使用复杂的表达式 // 2019-4-29 zhengkai 优化对普通和特殊storage关键字的判断(感谢@AhHeadFloating的反馈 ) // 2020-10-20 zhengkai 优化对fulltext/index关键字的处理(感谢@WEGFan的反馈) + // 2025-12-07 zhengkai 修复对primary key的处理 boolean notSpecialFlag = ( !columnLine.contains("key ") && !columnLine.contains("constraint") @@ -316,7 +317,8 @@ public class SqlParserServiceImpl implements SqlParserService { && !columnLine.contains("buffer_pool") && !columnLine.contains("tablespace") && !(columnLine.contains("primary ") && columnLine.indexOf("storage") + 3 > columnLine.indexOf("(")) - && !(columnLine.contains("primary ") && i > 3) + && !(columnLine.toLowerCase().contains("primary ") && i > 3) + && !columnLine.toLowerCase().contains("primary key") ); if (notSpecialFlag) { @@ -416,10 +418,10 @@ public class SqlParserServiceImpl implements SqlParserService { } } - if (fieldList.size() < 1) { + if (fieldList.isEmpty()) { throw new Exception("表结构分析失败,请检查语句或者提交issue给我"); } - + //build Class Info ClassInfo codeJavaInfo = new ClassInfo(); codeJavaInfo.setTableName(tableName); codeJavaInfo.setClassName(className);