From 06d04b38802cf9d17c5eee95ba71c9f2b40a4d49 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Thu, 13 Jul 2023 22:37:50 +0800 Subject: [PATCH 1/6] =?UTF-8?q?style:=20=E6=A0=BC=E5=BC=8F=E5=8C=96=20Myba?= =?UTF-8?q?tisFlexProcessor=20=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processor/MybatisFlexProcessor.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java index 4a8c3dd7..66610319 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java @@ -60,19 +60,19 @@ import java.util.function.BiConsumer; public class MybatisFlexProcessor extends AbstractProcessor { private static final List DEFAULT_SUPPORT_COLUMN_TYPES = Arrays.asList( - int.class.getName(), Integer.class.getName(), - short.class.getName(), Short.class.getName(), - long.class.getName(), Long.class.getName(), - float.class.getName(), Float.class.getName(), - double.class.getName(), Double.class.getName(), - boolean.class.getName(), Boolean.class.getName(), - Date.class.getName(), java.sql.Date.class.getName(), Time.class.getName(), Timestamp.class.getName(), - Instant.class.getName(), LocalDate.class.getName(), LocalDateTime.class.getName(), LocalTime.class.getName(), - OffsetDateTime.class.getName(), OffsetTime.class.getName(), ZonedDateTime.class.getName(), - Year.class.getName(), Month.class.getName(), YearMonth.class.getName(), JapaneseDate.class.getName(), - byte[].class.getName(), Byte[].class.getName(), Byte.class.getName(), - BigInteger.class.getName(), BigDecimal.class.getName(), - char.class.getName(), String.class.getName(), Character.class.getName() + int.class.getName(), Integer.class.getName(), + short.class.getName(), Short.class.getName(), + long.class.getName(), Long.class.getName(), + float.class.getName(), Float.class.getName(), + double.class.getName(), Double.class.getName(), + boolean.class.getName(), Boolean.class.getName(), + Date.class.getName(), java.sql.Date.class.getName(), Time.class.getName(), Timestamp.class.getName(), + Instant.class.getName(), LocalDate.class.getName(), LocalDateTime.class.getName(), LocalTime.class.getName(), + OffsetDateTime.class.getName(), OffsetTime.class.getName(), ZonedDateTime.class.getName(), + Year.class.getName(), Month.class.getName(), YearMonth.class.getName(), JapaneseDate.class.getName(), + byte[].class.getName(), Byte[].class.getName(), Byte.class.getName(), + BigInteger.class.getName(), BigDecimal.class.getName(), + char.class.getName(), String.class.getName(), Character.class.getName() ); private Filer filer; @@ -177,7 +177,7 @@ public class MybatisFlexProcessor extends AbstractProcessor { String tableDefPackage = StrUtil.buildTableDefPackage(entityClass); String tableDefClassName = entityClassName.concat(tableDefClassSuffix); String tableDefContent = ContentBuilder.buildTableDef(table, entityClass, entityClassName, allInTablesEnable, tableDefPackage, tableDefClassName - , tableDefPropertiesNameStyle, tableDefInstanceSuffix, columnInfos, defaultColumns); + , tableDefPropertiesNameStyle, tableDefInstanceSuffix, columnInfos, defaultColumns); processGenClass(genPath, tableDefPackage, tableDefClassName, tableDefContent); if (allInTablesEnable) { @@ -265,8 +265,8 @@ public class MybatisFlexProcessor extends AbstractProcessor { // 未配置 typeHandler 的情况下,只支持基本数据类型,不支持比如 list set 或者自定义的类等 if ((column == null || "org.apache.ibatis.type.UnknownTypeHandler".equals(typeHandlerClass[0])) - && !DEFAULT_SUPPORT_COLUMN_TYPES.contains(typeString) - && (typeElement != null && ElementKind.ENUM != typeElement.getKind()) + && !DEFAULT_SUPPORT_COLUMN_TYPES.contains(typeString) + && (typeElement != null && ElementKind.ENUM != typeElement.getKind()) ) { continue; } @@ -385,4 +385,4 @@ public class MybatisFlexProcessor extends AbstractProcessor { } } -} \ No newline at end of file +} From 48ffba84a0592566986b8578ee0fd96197e6f990 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Thu, 13 Jul 2023 22:53:18 +0800 Subject: [PATCH 2/6] =?UTF-8?q?style:=20=E6=A0=BC=E5=BC=8F=E5=8C=96=20Cont?= =?UTF-8?q?entBuilder=20=E4=BB=A3=E7=A0=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processor/builder/ContentBuilder.java | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java index a0935216..cf5f24a4 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java @@ -66,13 +66,13 @@ public class ContentBuilder { content.append("public class ").append(tableDefClassName).append(" extends TableDef {\n\n"); if (!allInTablesEnable) { content.append(" public static final ").append(tableDefClassName).append(' ').append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) - .append(" = new ").append(tableDefClassName).append("();\n\n"); + .append(" = new ").append(tableDefClassName).append("();\n\n"); } columnInfos.forEach((columnInfo) -> { content.append(" public final QueryColumn ") - .append(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle)) - .append(" = new QueryColumn(this, \"") - .append(columnInfo.getColumn()).append("\""); + .append(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle)) + .append(" = new QueryColumn(this, \"") + .append(columnInfo.getColumn()).append("\""); if (columnInfo.getAlias() != null && columnInfo.getAlias().length > 0) { content.append(", \"").append(columnInfo.getAlias()[0]).append("\""); } @@ -87,14 +87,14 @@ public class ContentBuilder { }); content.append(" public final QueryColumn[] ").append(StrUtil.buildFieldName("defaultColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn[]{").append(defaultColumnJoiner).append("};\n\n"); String schema = !StrUtil.isBlank(table.schema()) - ? table.schema() - : ""; + ? table.schema() + : ""; String tableName = !StrUtil.isBlank(table.value()) - ? table.value() - : StrUtil.firstCharToLowerCase(entityClassName); + ? table.value() + : StrUtil.firstCharToLowerCase(entityClassName); content.append(" public ").append(tableDefClassName).append("() {\n") - .append(" super").append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n") - .append(" }\n\n}\n"); + .append(" super").append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n") + .append(" }\n\n}\n"); return content.toString(); } @@ -104,13 +104,13 @@ public class ContentBuilder { public static String buildTables(StringBuilder importBuilder, StringBuilder fieldBuilder, String tablesPackage, String tablesClassName) { return "package " + tablesPackage + ";\n\n" + - importBuilder.toString() + - "\n// Auto generate by mybatis-flex, do not modify it.\n" + - "public class " + tablesClassName + " {\n\n" + - " private " + tablesClassName + "() {\n" + - " }\n\n" + - fieldBuilder.toString() + - "\n}\n"; + importBuilder.toString() + + "\n// Auto generate by mybatis-flex, do not modify it.\n" + + "public class " + tablesClassName + " {\n\n" + + " private " + tablesClassName + "() {\n" + + " }\n\n" + + fieldBuilder.toString() + + "\n}\n"; } /** @@ -122,8 +122,8 @@ public class ContentBuilder { String tableDefClassName = entityClassName.concat(tableDefClassSuffix); importBuilder.append("import ").append(tableDefPackage).append('.').append(tableDefClassName).append(";\n"); fieldBuilder.append(" public static final ").append(tableDefClassName).append(' ') - .append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) - .append(" = new ").append(tableDefClassName).append("();\n"); + .append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) + .append(" = new ").append(tableDefClassName).append("();\n"); } -} \ No newline at end of file +} From 814e3f292fa2921762d0c2779a283574f92d8aee Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Fri, 14 Jul 2023 10:14:56 +0800 Subject: [PATCH 3/6] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=20TableInfo=20?= =?UTF-8?q?=E8=A1=A8=E4=BF=A1=E6=81=AF=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processor/entity/TableInfo.java | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/TableInfo.java diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/TableInfo.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/TableInfo.java new file mode 100644 index 00000000..b3796e9f --- /dev/null +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/TableInfo.java @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com). + *

+ * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + *

+ * http://www.apache.org/licenses/LICENSE-2.0 + *

+ * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.mybatisflex.processor.entity; + +/** + * 表详细信息。 + * + * @author 王帅 + * @since 2023-07-13 + */ +public class TableInfo { + + /** + * 实体类全类名。 + */ + private String entityName; + + /** + * 实体类简单类名。 + */ + private String entitySimpleName; + + /** + * 实体类注释。 + */ + private String entityComment; + + /** + * 表名称。 + */ + private String tableName; + + /** + * Schema 模式。 + */ + private String schema; + + public String getEntityName() { + return entityName; + } + + public void setEntityName(String entityName) { + this.entityName = entityName; + } + + public String getEntitySimpleName() { + return entitySimpleName; + } + + public void setEntitySimpleName(String entitySimpleName) { + this.entitySimpleName = entitySimpleName; + } + + public String getEntityComment() { + return entityComment; + } + + public void setEntityComment(String entityComment) { + this.entityComment = entityComment; + } + + public String getTableName() { + return tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + } + + public String getSchema() { + return schema; + } + + public void setSchema(String schema) { + this.schema = schema; + } + +} From bef15d31dccb2a2cb30a1f6294f028692b80f0c4 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Fri, 14 Jul 2023 10:15:59 +0800 Subject: [PATCH 4/6] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E7=B1=BB=E5=AD=97=E6=AE=B5=E6=B3=A8=E9=87=8A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../processor/MybatisFlexProcessor.java | 16 +++++- .../processor/builder/ContentBuilder.java | 54 +++++++++++++------ .../processor/entity/ColumnInfo.java | 15 +++++- 3 files changed, 67 insertions(+), 18 deletions(-) diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java index f98ee1f7..187ea028 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/MybatisFlexProcessor.java @@ -23,6 +23,7 @@ import com.mybatisflex.processor.builder.ContentBuilder; import com.mybatisflex.processor.config.ConfigurationKey; import com.mybatisflex.processor.config.MybatisFlexConfig; import com.mybatisflex.processor.entity.ColumnInfo; +import com.mybatisflex.processor.entity.TableInfo; import com.mybatisflex.processor.util.FileUtil; import com.mybatisflex.processor.util.StrUtil; @@ -35,6 +36,7 @@ import javax.lang.model.element.*; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import javax.lang.model.util.Elements; import javax.lang.model.util.Types; import javax.tools.JavaFileObject; import java.io.File; @@ -77,12 +79,14 @@ public class MybatisFlexProcessor extends AbstractProcessor { private Filer filer; private Types typeUtils; + private Elements elementUtils; private MybatisFlexConfig configuration; @Override public synchronized void init(ProcessingEnvironment processingEnvironment) { super.init(processingEnvironment); this.filer = processingEnvironment.getFiler(); + this.elementUtils = processingEnvironment.getElementUtils(); this.typeUtils = processingEnvironment.getTypeUtils(); this.configuration = new MybatisFlexConfig(filer); } @@ -174,10 +178,17 @@ public class MybatisFlexProcessor extends AbstractProcessor { } } + TableInfo tableInfo = new TableInfo(); + tableInfo.setEntityName(entityClass); + tableInfo.setEntitySimpleName(entityClassName); + tableInfo.setTableName(table.value()); + tableInfo.setSchema(table.schema()); + tableInfo.setEntityComment(elementUtils.getDocComment(entityClassElement)); + // 生成 TableDef 文件 String tableDefPackage = StrUtil.buildTableDefPackage(entityClass); String tableDefClassName = entityClassName.concat(tableDefClassSuffix); - String tableDefContent = ContentBuilder.buildTableDef(table, entityClass, entityClassName, allInTablesEnable, tableDefPackage, tableDefClassName + String tableDefContent = ContentBuilder.buildTableDef(tableInfo, allInTablesEnable, tableDefPackage, tableDefClassName , tableDefPropertiesNameStyle, tableDefInstanceSuffix, columnInfos, defaultColumns); processGenClass(genPath, tableDefPackage, tableDefClassName, tableDefContent); @@ -185,7 +196,7 @@ public class MybatisFlexProcessor extends AbstractProcessor { // 标记 entity 类,如果没有配置 Tables 生成位置,以 entity 位置为准 entityClassReference = entityClass; // 构建 Tables 常量属性及其导包 - ContentBuilder.buildTablesField(importBuilder, fieldBuilder, table, entityClass, entityClassName, tableDefClassSuffix, tableDefPropertiesNameStyle, tableDefInstanceSuffix); + ContentBuilder.buildTablesField(importBuilder, fieldBuilder, tableInfo, tableDefClassSuffix, tableDefPropertiesNameStyle, tableDefInstanceSuffix); } // 是否生成 Mapper 文件 @@ -298,6 +309,7 @@ public class MybatisFlexProcessor extends AbstractProcessor { columnInfo.setProperty(property); columnInfo.setColumn(columnName); columnInfo.setAlias(alias); + columnInfo.setComment(elementUtils.getDocComment(fieldElement)); columnInfos.add(columnInfo); diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java index 609fbfb1..142c9908 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/builder/ContentBuilder.java @@ -16,8 +16,8 @@ package com.mybatisflex.processor.builder; -import com.mybatisflex.annotation.Table; import com.mybatisflex.processor.entity.ColumnInfo; +import com.mybatisflex.processor.entity.TableInfo; import com.mybatisflex.processor.util.StrUtil; import java.util.Collection; @@ -62,7 +62,7 @@ public class ContentBuilder { /** * 构建 TableDef 文件内容。 */ - public static String buildTableDef(Table table, String entityClass, String entityClassName, boolean allInTablesEnable, + public static String buildTableDef(TableInfo tableInfo, boolean allInTablesEnable, String tableDefPackage, String tableDefClassName, String tableDefPropertiesNameStyle, String tableDefInstanceSuffix, Collection columnInfos, List defaultColumns) { @@ -73,10 +73,22 @@ public class ContentBuilder { content.append("// Auto generate by mybatis-flex, do not modify it.\n"); content.append("public class ").append(tableDefClassName).append(" extends TableDef {\n\n"); if (!allInTablesEnable) { - content.append(" public static final ").append(tableDefClassName).append(' ').append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) + String entityComment = tableInfo.getEntityComment(); + if (!StrUtil.isBlank(entityComment)) { + content.append(" /**\n") + .append(" * ").append(entityComment.trim()).append("\n") + .append(" */\n"); + } + content.append(" public static final ").append(tableDefClassName).append(' ').append(StrUtil.buildFieldName(tableInfo.getEntitySimpleName().concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) .append(" = new ").append(tableDefClassName).append("();\n\n"); } columnInfos.forEach((columnInfo) -> { + String comment = columnInfo.getComment(); + if (!StrUtil.isBlank(comment)) { + content.append(" /**\n") + .append(" * ").append(comment.trim()).append("\n") + .append(" */\n"); + } content.append(" public final QueryColumn ") .append(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle)) .append(" = new QueryColumn(this, \"") @@ -84,22 +96,28 @@ public class ContentBuilder { if (columnInfo.getAlias() != null && columnInfo.getAlias().length > 0) { content.append(", \"").append(columnInfo.getAlias()[0]).append("\""); } - content.append(");\n"); + content.append(");\n\n"); }); - content.append("\n public final QueryColumn ").append(StrUtil.buildFieldName("allColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn(this, \"*\");\n"); + content.append(" /**\n") + .append(" * 所有字段。\n") + .append(" */\n"); + content.append(" public final QueryColumn ").append(StrUtil.buildFieldName("allColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn(this, \"*\");\n"); StringJoiner defaultColumnJoiner = new StringJoiner(", "); columnInfos.forEach((columnInfo) -> { if (defaultColumns.contains(columnInfo.getColumn())) { defaultColumnJoiner.add(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle)); } }); + content.append("\n /**\n") + .append(" * 默认字段,不包含逻辑删除或者 large 等字段。\n") + .append(" */\n"); content.append(" public final QueryColumn[] ").append(StrUtil.buildFieldName("defaultColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn[]{").append(defaultColumnJoiner).append("};\n\n"); - String schema = !StrUtil.isBlank(table.schema()) - ? table.schema() + String schema = !StrUtil.isBlank(tableInfo.getSchema()) + ? tableInfo.getSchema() : ""; - String tableName = !StrUtil.isBlank(table.value()) - ? table.value() - : StrUtil.firstCharToLowerCase(entityClassName); + String tableName = !StrUtil.isBlank(tableInfo.getTableName()) + ? tableInfo.getTableName() + : StrUtil.firstCharToLowerCase(tableInfo.getEntitySimpleName()); content.append(" public ").append(tableDefClassName).append("() {\n") .append(" super").append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n") .append(" }\n\n}\n"); @@ -124,13 +142,19 @@ public class ContentBuilder { /** * 构建 Tables 文件常量属性。 */ - public static void buildTablesField(StringBuilder importBuilder, StringBuilder fieldBuilder, Table table, - String entityClass, String entityClassName, String tableDefClassSuffix, String tableDefPropertiesNameStyle, String tableDefInstanceSuffix) { - String tableDefPackage = StrUtil.buildTableDefPackage(entityClass); - String tableDefClassName = entityClassName.concat(tableDefClassSuffix); + public static void buildTablesField(StringBuilder importBuilder, StringBuilder fieldBuilder, TableInfo tableInfo, + String tableDefClassSuffix, String tableDefPropertiesNameStyle, String tableDefInstanceSuffix) { + String tableDefPackage = StrUtil.buildTableDefPackage(tableInfo.getEntityName()); + String tableDefClassName = tableInfo.getEntitySimpleName().concat(tableDefClassSuffix); importBuilder.append("import ").append(tableDefPackage).append('.').append(tableDefClassName).append(";\n"); + String entityComment = tableInfo.getEntityComment(); + if (!StrUtil.isBlank(entityComment)) { + fieldBuilder.append(" /**\n") + .append(" * ").append(entityComment).append("\n") + .append(" */\n"); + } fieldBuilder.append(" public static final ").append(tableDefClassName).append(' ') - .append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) + .append(StrUtil.buildFieldName(tableInfo.getEntitySimpleName().concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle)) .append(" = new ").append(tableDefClassName).append("();\n"); } diff --git a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/ColumnInfo.java b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/ColumnInfo.java index 93649a3c..8bb32d52 100644 --- a/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/ColumnInfo.java +++ b/mybatis-flex-processor/src/main/java/com/mybatisflex/processor/entity/ColumnInfo.java @@ -31,6 +31,11 @@ public class ColumnInfo implements Comparable { */ private String property; + /** + * 注释。 + */ + private String comment; + /** * 列名。 */ @@ -49,6 +54,14 @@ public class ColumnInfo implements Comparable { this.property = property; } + public String getComment() { + return comment; + } + + public void setComment(String comment) { + this.comment = comment; + } + public String getColumn() { return column; } @@ -90,4 +103,4 @@ public class ColumnInfo implements Comparable { return compare == 0 ? property.compareTo(o.property) : compare; } -} \ No newline at end of file +} From 2f5fded899a16cb5238dcc30d9fa829703b7a3d1 Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Fri, 14 Jul 2023 10:16:23 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=94=9F=E6=88=90=E5=99=A8=E7=94=9F=E6=88=90=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E7=B1=BB=E5=AD=97=E6=AE=B5=E6=B3=A8=E9=87=8A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/templates/enjoy/tableDef.tpl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl b/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl index 7bf6f3b1..018ec960 100644 --- a/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl +++ b/mybatis-flex-codegen/src/main/resources/templates/enjoy/tableDef.tpl @@ -13,13 +13,24 @@ import com.mybatisflex.core.table.TableDef; */ public class #(tableDefClassName) extends TableDef { + /** + * #(table.getComment()) + */ public static final #(tableDefClassName) #(tableDefConfig.buildFieldName(table.buildEntityClassName() + tableDefConfig.instanceSuffix)) = new #(tableDefClassName)(); #for(column: table.columns) + #(column.buildComment()) public final QueryColumn #(tableDefConfig.buildFieldName(column.property)) = new QueryColumn(this, "#(column.name)"); -#end +#end + /** + * 所有字段。 + */ public final QueryColumn #(tableDefConfig.buildFieldName("allColumns")) = new QueryColumn(this, "*"); + + /** + * 默认字段,不包含逻辑删除或者 large 等字段。 + */ public final QueryColumn[] #(tableDefConfig.buildFieldName("defaultColumns")) = new QueryColumn[]{#for(column: table.columns)#if(column.isDefaultColumn())#(tableDefConfig.buildFieldName(column.property))#if(for.index + 1 != for.size), #end#end#end}; public #(tableDefClassName)() { From fe5f08530791fc9924f902f7a7c09a48af1c5e1f Mon Sep 17 00:00:00 2001 From: Suomm <1474983351@qq.com> Date: Fri, 14 Jul 2023 10:16:45 +0800 Subject: [PATCH 6/6] =?UTF-8?q?test:=20=E6=B5=8B=E8=AF=95=E8=BE=85?= =?UTF-8?q?=E5=8A=A9=E7=B1=BB=E5=AD=97=E6=AE=B5=E6=B3=A8=E9=87=8A=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mybatisflex/test/model/Account.java | 26 ++++++++++++++----- .../mybatisflex/test/model/BaseEntity.java | 9 ++++++- .../com/mybatisflex/test/model/IdEntity.java | 5 +++- 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Account.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Account.java index 333c721d..49c87d8b 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Account.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/Account.java @@ -20,14 +20,28 @@ import com.mybatisflex.annotation.Table; import java.util.Date; +/** + * 账户信息。 + */ @Table(value = "tb_account", onSet = AccountOnSetListener.class) public class Account extends BaseEntity { /*@Id(keyType = KeyType.Auto) private Long id;*/ //private String userName; + /** + * 年龄。 + */ private Integer age; + + /** + * 生日。 + */ private Date birthday; + + /** + * 逻辑删除。 + */ @Column(isLogicDelete = true) private Boolean isDelete; @@ -84,12 +98,12 @@ public class Account extends BaseEntity { @Override public String toString() { return "Account{" + - "id=" + id + - ", userName='" + userName + '\'' + - ", age=" + age + - ", birthday=" + birthday + - ", isDelete=" + isDelete + + "id=" + id + + ", userName='" + userName + '\'' + + ", age=" + age + + ", birthday=" + birthday + + ", isDelete=" + isDelete + // ", roles=" + roles + - '}'; + '}'; } } diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/BaseEntity.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/BaseEntity.java index 7ca3db9a..c8bf48ff 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/BaseEntity.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/BaseEntity.java @@ -26,7 +26,14 @@ import java.util.List; */ public class BaseEntity extends IdEntity { + /** + * 用户名。 + */ protected T userName; + + /** + * 用户角色。 + */ @Column(ignore = true) protected List roles; @@ -46,4 +53,4 @@ public class BaseEntity extends IdEntity { public void setUserName(T userName) { this.userName = userName; } -} \ No newline at end of file +} diff --git a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/IdEntity.java b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/IdEntity.java index 2baa5af4..4ddd1d02 100644 --- a/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/IdEntity.java +++ b/mybatis-flex-test/mybatis-flex-spring-boot-test/src/main/java/com/mybatisflex/test/model/IdEntity.java @@ -27,6 +27,9 @@ import java.io.Serializable; */ public class IdEntity implements Serializable { + /** + * 主键。 + */ @Id(keyType = KeyType.Auto) protected T id; @@ -37,4 +40,4 @@ public class IdEntity implements Serializable { public void setId(T id) { this.id = id; } -} \ No newline at end of file +}