mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-07 09:08:24 +08:00
commit
fd2a120d30
@ -13,13 +13,24 @@ import com.mybatisflex.core.table.TableDef;
|
|||||||
*/
|
*/
|
||||||
public class #(tableDefClassName) extends TableDef {
|
public class #(tableDefClassName) extends TableDef {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* #(table.getComment())
|
||||||
|
*/
|
||||||
public static final #(tableDefClassName) #(tableDefConfig.buildFieldName(table.buildEntityClassName() + tableDefConfig.instanceSuffix)) = new #(tableDefClassName)();
|
public static final #(tableDefClassName) #(tableDefConfig.buildFieldName(table.buildEntityClassName() + tableDefConfig.instanceSuffix)) = new #(tableDefClassName)();
|
||||||
|
|
||||||
#for(column: table.columns)
|
#for(column: table.columns)
|
||||||
|
#(column.buildComment())
|
||||||
public final QueryColumn #(tableDefConfig.buildFieldName(column.property)) = new QueryColumn(this, "#(column.name)");
|
public final QueryColumn #(tableDefConfig.buildFieldName(column.property)) = new QueryColumn(this, "#(column.name)");
|
||||||
#end
|
|
||||||
|
|
||||||
|
#end
|
||||||
|
/**
|
||||||
|
* 所有字段。
|
||||||
|
*/
|
||||||
public final QueryColumn #(tableDefConfig.buildFieldName("allColumns")) = new QueryColumn(this, "*");
|
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 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)() {
|
public #(tableDefClassName)() {
|
||||||
|
|||||||
@ -23,6 +23,7 @@ import com.mybatisflex.processor.builder.ContentBuilder;
|
|||||||
import com.mybatisflex.processor.config.ConfigurationKey;
|
import com.mybatisflex.processor.config.ConfigurationKey;
|
||||||
import com.mybatisflex.processor.config.MybatisFlexConfig;
|
import com.mybatisflex.processor.config.MybatisFlexConfig;
|
||||||
import com.mybatisflex.processor.entity.ColumnInfo;
|
import com.mybatisflex.processor.entity.ColumnInfo;
|
||||||
|
import com.mybatisflex.processor.entity.TableInfo;
|
||||||
import com.mybatisflex.processor.util.FileUtil;
|
import com.mybatisflex.processor.util.FileUtil;
|
||||||
import com.mybatisflex.processor.util.StrUtil;
|
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.DeclaredType;
|
||||||
import javax.lang.model.type.TypeKind;
|
import javax.lang.model.type.TypeKind;
|
||||||
import javax.lang.model.type.TypeMirror;
|
import javax.lang.model.type.TypeMirror;
|
||||||
|
import javax.lang.model.util.Elements;
|
||||||
import javax.lang.model.util.Types;
|
import javax.lang.model.util.Types;
|
||||||
import javax.tools.JavaFileObject;
|
import javax.tools.JavaFileObject;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -60,29 +62,31 @@ import java.util.function.BiConsumer;
|
|||||||
public class MybatisFlexProcessor extends AbstractProcessor {
|
public class MybatisFlexProcessor extends AbstractProcessor {
|
||||||
|
|
||||||
private static final List<String> DEFAULT_SUPPORT_COLUMN_TYPES = Arrays.asList(
|
private static final List<String> DEFAULT_SUPPORT_COLUMN_TYPES = Arrays.asList(
|
||||||
int.class.getName(), Integer.class.getName(),
|
int.class.getName(), Integer.class.getName(),
|
||||||
short.class.getName(), Short.class.getName(),
|
short.class.getName(), Short.class.getName(),
|
||||||
long.class.getName(), Long.class.getName(),
|
long.class.getName(), Long.class.getName(),
|
||||||
float.class.getName(), Float.class.getName(),
|
float.class.getName(), Float.class.getName(),
|
||||||
double.class.getName(), Double.class.getName(),
|
double.class.getName(), Double.class.getName(),
|
||||||
boolean.class.getName(), Boolean.class.getName(),
|
boolean.class.getName(), Boolean.class.getName(),
|
||||||
Date.class.getName(), java.sql.Date.class.getName(), Time.class.getName(), Timestamp.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(),
|
Instant.class.getName(), LocalDate.class.getName(), LocalDateTime.class.getName(), LocalTime.class.getName(),
|
||||||
OffsetDateTime.class.getName(), OffsetTime.class.getName(), ZonedDateTime.class.getName(),
|
OffsetDateTime.class.getName(), OffsetTime.class.getName(), ZonedDateTime.class.getName(),
|
||||||
Year.class.getName(), Month.class.getName(), YearMonth.class.getName(), JapaneseDate.class.getName(),
|
Year.class.getName(), Month.class.getName(), YearMonth.class.getName(), JapaneseDate.class.getName(),
|
||||||
byte[].class.getName(), Byte[].class.getName(), Byte.class.getName(),
|
byte[].class.getName(), Byte[].class.getName(), Byte.class.getName(),
|
||||||
BigInteger.class.getName(), BigDecimal.class.getName(),
|
BigInteger.class.getName(), BigDecimal.class.getName(),
|
||||||
char.class.getName(), String.class.getName(), Character.class.getName()
|
char.class.getName(), String.class.getName(), Character.class.getName()
|
||||||
);
|
);
|
||||||
|
|
||||||
private Filer filer;
|
private Filer filer;
|
||||||
private Types typeUtils;
|
private Types typeUtils;
|
||||||
|
private Elements elementUtils;
|
||||||
private MybatisFlexConfig configuration;
|
private MybatisFlexConfig configuration;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public synchronized void init(ProcessingEnvironment processingEnvironment) {
|
public synchronized void init(ProcessingEnvironment processingEnvironment) {
|
||||||
super.init(processingEnvironment);
|
super.init(processingEnvironment);
|
||||||
this.filer = processingEnvironment.getFiler();
|
this.filer = processingEnvironment.getFiler();
|
||||||
|
this.elementUtils = processingEnvironment.getElementUtils();
|
||||||
this.typeUtils = processingEnvironment.getTypeUtils();
|
this.typeUtils = processingEnvironment.getTypeUtils();
|
||||||
this.configuration = new MybatisFlexConfig(filer);
|
this.configuration = new MybatisFlexConfig(filer);
|
||||||
}
|
}
|
||||||
@ -174,18 +178,25 @@ 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 文件
|
// 生成 TableDef 文件
|
||||||
String tableDefPackage = StrUtil.buildTableDefPackage(entityClass);
|
String tableDefPackage = StrUtil.buildTableDefPackage(entityClass);
|
||||||
String tableDefClassName = entityClassName.concat(tableDefClassSuffix);
|
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);
|
, tableDefPropertiesNameStyle, tableDefInstanceSuffix, columnInfos, defaultColumns);
|
||||||
processGenClass(genPath, tableDefPackage, tableDefClassName, tableDefContent);
|
processGenClass(genPath, tableDefPackage, tableDefClassName, tableDefContent);
|
||||||
|
|
||||||
if (allInTablesEnable) {
|
if (allInTablesEnable) {
|
||||||
// 标记 entity 类,如果没有配置 Tables 生成位置,以 entity 位置为准
|
// 标记 entity 类,如果没有配置 Tables 生成位置,以 entity 位置为准
|
||||||
entityClassReference = entityClass;
|
entityClassReference = entityClass;
|
||||||
// 构建 Tables 常量属性及其导包
|
// 构建 Tables 常量属性及其导包
|
||||||
ContentBuilder.buildTablesField(importBuilder, fieldBuilder, table, entityClass, entityClassName, tableDefClassSuffix, tableDefPropertiesNameStyle, tableDefInstanceSuffix);
|
ContentBuilder.buildTablesField(importBuilder, fieldBuilder, tableInfo, tableDefClassSuffix, tableDefPropertiesNameStyle, tableDefInstanceSuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 是否生成 Mapper 文件
|
// 是否生成 Mapper 文件
|
||||||
@ -267,8 +278,8 @@ public class MybatisFlexProcessor extends AbstractProcessor {
|
|||||||
|
|
||||||
// 未配置 typeHandler 的情况下,只支持基本数据类型,不支持比如 list set 或者自定义的类等
|
// 未配置 typeHandler 的情况下,只支持基本数据类型,不支持比如 list set 或者自定义的类等
|
||||||
if ((column == null || "org.apache.ibatis.type.UnknownTypeHandler".equals(typeHandlerClass[0]))
|
if ((column == null || "org.apache.ibatis.type.UnknownTypeHandler".equals(typeHandlerClass[0]))
|
||||||
&& !DEFAULT_SUPPORT_COLUMN_TYPES.contains(typeString)
|
&& !DEFAULT_SUPPORT_COLUMN_TYPES.contains(typeString)
|
||||||
&& (typeElement != null && ElementKind.ENUM != typeElement.getKind())
|
&& (typeElement != null && ElementKind.ENUM != typeElement.getKind())
|
||||||
) {
|
) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -298,6 +309,7 @@ public class MybatisFlexProcessor extends AbstractProcessor {
|
|||||||
columnInfo.setProperty(property);
|
columnInfo.setProperty(property);
|
||||||
columnInfo.setColumn(columnName);
|
columnInfo.setColumn(columnName);
|
||||||
columnInfo.setAlias(alias);
|
columnInfo.setAlias(alias);
|
||||||
|
columnInfo.setComment(elementUtils.getDocComment(fieldElement));
|
||||||
|
|
||||||
columnInfos.add(columnInfo);
|
columnInfos.add(columnInfo);
|
||||||
|
|
||||||
|
|||||||
@ -16,8 +16,8 @@
|
|||||||
|
|
||||||
package com.mybatisflex.processor.builder;
|
package com.mybatisflex.processor.builder;
|
||||||
|
|
||||||
import com.mybatisflex.annotation.Table;
|
|
||||||
import com.mybatisflex.processor.entity.ColumnInfo;
|
import com.mybatisflex.processor.entity.ColumnInfo;
|
||||||
|
import com.mybatisflex.processor.entity.TableInfo;
|
||||||
import com.mybatisflex.processor.util.StrUtil;
|
import com.mybatisflex.processor.util.StrUtil;
|
||||||
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -62,7 +62,7 @@ public class ContentBuilder {
|
|||||||
/**
|
/**
|
||||||
* 构建 TableDef 文件内容。
|
* 构建 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 tableDefPackage, String tableDefClassName,
|
||||||
String tableDefPropertiesNameStyle, String tableDefInstanceSuffix,
|
String tableDefPropertiesNameStyle, String tableDefInstanceSuffix,
|
||||||
Collection<ColumnInfo> columnInfos, List<String> defaultColumns) {
|
Collection<ColumnInfo> columnInfos, List<String> defaultColumns) {
|
||||||
@ -73,36 +73,54 @@ public class ContentBuilder {
|
|||||||
content.append("// Auto generate by mybatis-flex, do not modify it.\n");
|
content.append("// Auto generate by mybatis-flex, do not modify it.\n");
|
||||||
content.append("public class ").append(tableDefClassName).append(" extends TableDef {\n\n");
|
content.append("public class ").append(tableDefClassName).append(" extends TableDef {\n\n");
|
||||||
if (!allInTablesEnable) {
|
if (!allInTablesEnable) {
|
||||||
content.append(" public static final ").append(tableDefClassName).append(' ').append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle))
|
String entityComment = tableInfo.getEntityComment();
|
||||||
.append(" = new ").append(tableDefClassName).append("();\n\n");
|
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) -> {
|
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 ")
|
content.append(" public final QueryColumn ")
|
||||||
.append(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle))
|
.append(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle))
|
||||||
.append(" = new QueryColumn(this, \"")
|
.append(" = new QueryColumn(this, \"")
|
||||||
.append(columnInfo.getColumn()).append("\"");
|
.append(columnInfo.getColumn()).append("\"");
|
||||||
if (columnInfo.getAlias() != null && columnInfo.getAlias().length > 0) {
|
if (columnInfo.getAlias() != null && columnInfo.getAlias().length > 0) {
|
||||||
content.append(", \"").append(columnInfo.getAlias()[0]).append("\"");
|
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(", ");
|
StringJoiner defaultColumnJoiner = new StringJoiner(", ");
|
||||||
columnInfos.forEach((columnInfo) -> {
|
columnInfos.forEach((columnInfo) -> {
|
||||||
if (defaultColumns.contains(columnInfo.getColumn())) {
|
if (defaultColumns.contains(columnInfo.getColumn())) {
|
||||||
defaultColumnJoiner.add(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle));
|
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");
|
content.append(" public final QueryColumn[] ").append(StrUtil.buildFieldName("defaultColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn[]{").append(defaultColumnJoiner).append("};\n\n");
|
||||||
String schema = !StrUtil.isBlank(table.schema())
|
String schema = !StrUtil.isBlank(tableInfo.getSchema())
|
||||||
? table.schema()
|
? tableInfo.getSchema()
|
||||||
: "";
|
: "";
|
||||||
String tableName = !StrUtil.isBlank(table.value())
|
String tableName = !StrUtil.isBlank(tableInfo.getTableName())
|
||||||
? table.value()
|
? tableInfo.getTableName()
|
||||||
: StrUtil.firstCharToLowerCase(entityClassName);
|
: StrUtil.firstCharToLowerCase(tableInfo.getEntitySimpleName());
|
||||||
content.append(" public ").append(tableDefClassName).append("() {\n")
|
content.append(" public ").append(tableDefClassName).append("() {\n")
|
||||||
.append(" super").append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n")
|
.append(" super").append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n")
|
||||||
.append(" }\n\n}\n");
|
.append(" }\n\n}\n");
|
||||||
return content.toString();
|
return content.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -112,26 +130,32 @@ public class ContentBuilder {
|
|||||||
public static String buildTables(StringBuilder importBuilder, StringBuilder fieldBuilder,
|
public static String buildTables(StringBuilder importBuilder, StringBuilder fieldBuilder,
|
||||||
String tablesPackage, String tablesClassName) {
|
String tablesPackage, String tablesClassName) {
|
||||||
return "package " + tablesPackage + ";\n\n" +
|
return "package " + tablesPackage + ";\n\n" +
|
||||||
importBuilder.toString() +
|
importBuilder.toString() +
|
||||||
"\n// Auto generate by mybatis-flex, do not modify it.\n" +
|
"\n// Auto generate by mybatis-flex, do not modify it.\n" +
|
||||||
"public class " + tablesClassName + " {\n\n" +
|
"public class " + tablesClassName + " {\n\n" +
|
||||||
" private " + tablesClassName + "() {\n" +
|
" private " + tablesClassName + "() {\n" +
|
||||||
" }\n\n" +
|
" }\n\n" +
|
||||||
fieldBuilder.toString() +
|
fieldBuilder.toString() +
|
||||||
"\n}\n";
|
"\n}\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建 Tables 文件常量属性。
|
* 构建 Tables 文件常量属性。
|
||||||
*/
|
*/
|
||||||
public static void buildTablesField(StringBuilder importBuilder, StringBuilder fieldBuilder, Table table,
|
public static void buildTablesField(StringBuilder importBuilder, StringBuilder fieldBuilder, TableInfo tableInfo,
|
||||||
String entityClass, String entityClassName, String tableDefClassSuffix, String tableDefPropertiesNameStyle, String tableDefInstanceSuffix) {
|
String tableDefClassSuffix, String tableDefPropertiesNameStyle, String tableDefInstanceSuffix) {
|
||||||
String tableDefPackage = StrUtil.buildTableDefPackage(entityClass);
|
String tableDefPackage = StrUtil.buildTableDefPackage(tableInfo.getEntityName());
|
||||||
String tableDefClassName = entityClassName.concat(tableDefClassSuffix);
|
String tableDefClassName = tableInfo.getEntitySimpleName().concat(tableDefClassSuffix);
|
||||||
importBuilder.append("import ").append(tableDefPackage).append('.').append(tableDefClassName).append(";\n");
|
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(' ')
|
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");
|
.append(" = new ").append(tableDefClassName).append("();\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,11 @@ public class ColumnInfo implements Comparable<ColumnInfo> {
|
|||||||
*/
|
*/
|
||||||
private String property;
|
private String property;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注释。
|
||||||
|
*/
|
||||||
|
private String comment;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 列名。
|
* 列名。
|
||||||
*/
|
*/
|
||||||
@ -49,6 +54,14 @@ public class ColumnInfo implements Comparable<ColumnInfo> {
|
|||||||
this.property = property;
|
this.property = property;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getComment() {
|
||||||
|
return comment;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setComment(String comment) {
|
||||||
|
this.comment = comment;
|
||||||
|
}
|
||||||
|
|
||||||
public String getColumn() {
|
public String getColumn() {
|
||||||
return column;
|
return column;
|
||||||
}
|
}
|
||||||
@ -90,4 +103,4 @@ public class ColumnInfo implements Comparable<ColumnInfo> {
|
|||||||
return compare == 0 ? property.compareTo(o.property) : compare;
|
return compare == 0 ? property.compareTo(o.property) : compare;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,92 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2022-2023, Mybatis-Flex (fuhai999@gmail.com).
|
||||||
|
* <p>
|
||||||
|
* 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
|
||||||
|
* <p>
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
* <p>
|
||||||
|
* 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -20,14 +20,28 @@ import com.mybatisflex.annotation.Table;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账户信息。
|
||||||
|
*/
|
||||||
@Table(value = "tb_account", onSet = AccountOnSetListener.class)
|
@Table(value = "tb_account", onSet = AccountOnSetListener.class)
|
||||||
public class Account extends BaseEntity<String, Long, String> {
|
public class Account extends BaseEntity<String, Long, String> {
|
||||||
|
|
||||||
/*@Id(keyType = KeyType.Auto)
|
/*@Id(keyType = KeyType.Auto)
|
||||||
private Long id;*/
|
private Long id;*/
|
||||||
//private String userName;
|
//private String userName;
|
||||||
|
/**
|
||||||
|
* 年龄。
|
||||||
|
*/
|
||||||
private Integer age;
|
private Integer age;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生日。
|
||||||
|
*/
|
||||||
private Date birthday;
|
private Date birthday;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 逻辑删除。
|
||||||
|
*/
|
||||||
@Column(isLogicDelete = true)
|
@Column(isLogicDelete = true)
|
||||||
private Boolean isDelete;
|
private Boolean isDelete;
|
||||||
|
|
||||||
@ -84,12 +98,12 @@ public class Account extends BaseEntity<String, Long, String> {
|
|||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Account{" +
|
return "Account{" +
|
||||||
"id=" + id +
|
"id=" + id +
|
||||||
", userName='" + userName + '\'' +
|
", userName='" + userName + '\'' +
|
||||||
", age=" + age +
|
", age=" + age +
|
||||||
", birthday=" + birthday +
|
", birthday=" + birthday +
|
||||||
", isDelete=" + isDelete +
|
", isDelete=" + isDelete +
|
||||||
// ", roles=" + roles +
|
// ", roles=" + roles +
|
||||||
'}';
|
'}';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -26,7 +26,14 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public class BaseEntity<T, ID, L> extends IdEntity<ID> {
|
public class BaseEntity<T, ID, L> extends IdEntity<ID> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户名。
|
||||||
|
*/
|
||||||
protected T userName;
|
protected T userName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户角色。
|
||||||
|
*/
|
||||||
@Column(ignore = true)
|
@Column(ignore = true)
|
||||||
protected List<L> roles;
|
protected List<L> roles;
|
||||||
|
|
||||||
@ -46,4 +53,4 @@ public class BaseEntity<T, ID, L> extends IdEntity<ID> {
|
|||||||
public void setUserName(T userName) {
|
public void setUserName(T userName) {
|
||||||
this.userName = userName;
|
this.userName = userName;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -27,6 +27,9 @@ import java.io.Serializable;
|
|||||||
*/
|
*/
|
||||||
public class IdEntity<T> implements Serializable {
|
public class IdEntity<T> implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键。
|
||||||
|
*/
|
||||||
@Id(keyType = KeyType.Auto)
|
@Id(keyType = KeyType.Auto)
|
||||||
protected T id;
|
protected T id;
|
||||||
|
|
||||||
@ -37,4 +40,4 @@ public class IdEntity<T> implements Serializable {
|
|||||||
public void setId(T id) {
|
public void setId(T id) {
|
||||||
this.id = id;
|
this.id = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user