From 1b43023fefa020f8b8bb92294b0078db5720f6e1 Mon Sep 17 00:00:00 2001 From: rse <119827+higashikaze@user.noreply.gitee.com> Date: Mon, 21 Mar 2022 11:49:33 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90model=E6=97=B6=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=B7=BB=E5=8A=A0=E9=80=BB=E8=BE=91=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=B3=A8=E8=A7=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/generator/MapperCommentGenerator.java | 14 ++++++++++++++ .../tk/mybatis/mapper/generator/MapperPlugin.java | 12 ++++++++++++ 2 files changed, 26 insertions(+) diff --git a/generator/src/main/java/tk/mybatis/mapper/generator/MapperCommentGenerator.java b/generator/src/main/java/tk/mybatis/mapper/generator/MapperCommentGenerator.java index c29a754..97ce851 100644 --- a/generator/src/main/java/tk/mybatis/mapper/generator/MapperCommentGenerator.java +++ b/generator/src/main/java/tk/mybatis/mapper/generator/MapperCommentGenerator.java @@ -38,6 +38,7 @@ import java.util.Properties; import java.util.Set; public class MapperCommentGenerator implements CommentGenerator { + //开始的分隔符,例如mysql为`,sqlserver为[ private String beginningDelimiter = ""; //结束的分隔符,例如mysql为`,sqlserver为] @@ -46,6 +47,8 @@ public class MapperCommentGenerator implements CommentGenerator { private boolean forceAnnotation; //是否生成swagger注解 private boolean needsSwagger; + //逻辑删除字段 + private String logicDeleteColumn = ""; public MapperCommentGenerator() { super(); @@ -94,6 +97,10 @@ public class MapperCommentGenerator implements CommentGenerator { if (StringUtility.stringHasValue(needsSwagger)) { this.needsSwagger = "TRUE".equalsIgnoreCase(needsSwagger); } + String logicDeleteColumn = properties.getProperty("logicDeleteColumn"); + if (StringUtility.stringHasValue(logicDeleteColumn)) { + this.logicDeleteColumn = logicDeleteColumn; + } } public String getDelimiterName(String name) { @@ -176,6 +183,12 @@ public class MapperCommentGenerator implements CommentGenerator { } else if (forceAnnotation) { field.addAnnotation("@Column(name = \"" + getDelimiterName(column) + "\")"); } + + // 添加逻辑删除注解 + if (column.equals(this.logicDeleteColumn)) { + field.addAnnotation("@LogicDelete"); + } + if (introspectedColumn.isIdentity()) { if ("JDBC".equals(introspectedTable.getTableConfiguration().getGeneratedKey().getRuntimeSqlStatement())) { field.addAnnotation("@GeneratedValue(generator = \"JDBC\")"); @@ -188,6 +201,7 @@ public class MapperCommentGenerator implements CommentGenerator { String sql = MessageFormat.format(introspectedTable.getTableConfiguration().getGeneratedKey().getRuntimeSqlStatement(), tableName, tableName.toUpperCase()); field.addAnnotation("@GeneratedValue(strategy = GenerationType.IDENTITY, generator = \"" + sql + "\")"); } + // region swagger注解 if (this.needsSwagger) { String remarks = introspectedColumn.getRemarks(); diff --git a/generator/src/main/java/tk/mybatis/mapper/generator/MapperPlugin.java b/generator/src/main/java/tk/mybatis/mapper/generator/MapperPlugin.java index 734c791..6ade04c 100644 --- a/generator/src/main/java/tk/mybatis/mapper/generator/MapperPlugin.java +++ b/generator/src/main/java/tk/mybatis/mapper/generator/MapperPlugin.java @@ -79,6 +79,9 @@ public class MapperPlugin extends FalseMethodPlugin { private boolean generateDefaultInstanceMethod = false; //是否生成swagger注解,包括 @ApiModel和@ApiModelProperty private boolean needsSwagger = false; + //是否逻辑删除 + private boolean logicDelete = false; + public String getDelimiterName(String name) { StringBuilder nameBuilder = new StringBuilder(); @@ -252,6 +255,13 @@ public class MapperPlugin extends FalseMethodPlugin { topLevelClass.addField(columnField); } } + + if(this.logicDelete) + { + topLevelClass.addImportedType("tk.mybatis.mapper.annotation.LogicDelete"); + } + + if (generateDefaultInstanceMethod) { //注意基本类型和包装的index要一致,方便后面使用 List baseClassName = Arrays.asList("byte", "short", "char", "int", "long", "float", "double", "boolean"); @@ -446,6 +456,8 @@ public class MapperPlugin extends FalseMethodPlugin { } this.generateColumnConsts = getPropertyAsBoolean("generateColumnConsts"); this.generateDefaultInstanceMethod = getPropertyAsBoolean("generateDefaultInstanceMethod"); + + this.logicDelete = Boolean.parseBoolean(this.properties.getProperty("logicDelete")); } protected String getProperty(String key) { -- Gitee