mirror of
https://gitee.com/mybatis-flex/mybatis-flex.git
synced 2025-12-08 01:28:24 +08:00
commit
126a99ba6a
@ -1,4 +1,5 @@
|
||||
#set(tableDefClassName = table.buildTableDefClassName())
|
||||
#set(schema = table.schema == null ? "" : table.schema)
|
||||
package #(packageConfig.tableDefPackage);
|
||||
|
||||
import com.mybatisflex.core.query.QueryColumn;
|
||||
@ -12,17 +13,17 @@ import com.mybatisflex.core.table.TableDef;
|
||||
*/
|
||||
public class #(tableDefClassName) extends TableDef {
|
||||
|
||||
public static final #(tableDefClassName) #(tableDefConfig.buildFieldName(table.buildEntityClassName() + tableDefConfig.instanceSuffix)) = new #(tableDefClassName)("#(table.name)");
|
||||
public static final #(tableDefClassName) #(tableDefConfig.buildFieldName(table.buildEntityClassName() + tableDefConfig.instanceSuffix)) = new #(tableDefClassName)();
|
||||
|
||||
#for(column: table.columns)
|
||||
public QueryColumn #(tableDefConfig.buildFieldName(column.property)) = new QueryColumn(this, "#(column.name)");
|
||||
public final QueryColumn #(tableDefConfig.buildFieldName(column.property)) = new QueryColumn(this, "#(column.name)");
|
||||
#end
|
||||
|
||||
public QueryColumn #(tableDefConfig.buildFieldName("allColumns")) = new QueryColumn(this, "*");
|
||||
public QueryColumn[] #(tableDefConfig.buildFieldName("defaultColumns")) = new QueryColumn[]{#for(column: table.columns) #if(!column.isLarge())#(tableDefConfig.buildFieldName(column.property))#if(for.index + 1 != for.size),#end#end#end};
|
||||
public final QueryColumn #(tableDefConfig.buildFieldName("allColumns")) = new QueryColumn(this, "*");
|
||||
public final QueryColumn[] #(tableDefConfig.buildFieldName("defaultColumns")) = new QueryColumn[]{#for(column: table.columns)#if(!column.isLarge())#(tableDefConfig.buildFieldName(column.property))#if(for.index + 1 != for.size), #end#end#end};
|
||||
|
||||
public #(tableDefClassName)(String tableName) {
|
||||
super(tableName);
|
||||
public #(tableDefClassName)() {
|
||||
super("#(schema)", "#(table.name)");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -149,7 +149,7 @@ public class MybatisFlexProcessor extends AbstractProcessor {
|
||||
assert table != null;
|
||||
|
||||
// 类属性 fix: https://gitee.com/mybatis-flex/mybatis-flex/issues/I7I08X
|
||||
Set<ColumnInfo> columnInfos = new HashSet<>();
|
||||
Set<ColumnInfo> columnInfos = new TreeSet<>();
|
||||
// 默认查询的属性,非 isLarge 字段
|
||||
List<String> defaultColumns = new ArrayList<>();
|
||||
|
||||
|
||||
@ -65,17 +65,11 @@ 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) {
|
||||
String schema = !StrUtil.isBlank(table.schema())
|
||||
? table.schema()
|
||||
: "";
|
||||
String tableName = !StrUtil.isBlank(table.value())
|
||||
? table.value()
|
||||
: StrUtil.firstCharToLowerCase(entityClassName);
|
||||
content.append(" public static final ").append(tableDefClassName).append(' ').append(StrUtil.buildFieldName(entityClassName.concat(tableDefInstanceSuffix != null ? tableDefInstanceSuffix.trim() : ""), tableDefPropertiesNameStyle))
|
||||
.append(" = new ").append(tableDefClassName).append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n\n");
|
||||
.append(" = new ").append(tableDefClassName).append("();\n\n");
|
||||
}
|
||||
columnInfos.forEach((columnInfo) -> {
|
||||
content.append(" public QueryColumn ")
|
||||
content.append(" public final QueryColumn ")
|
||||
.append(StrUtil.buildFieldName(columnInfo.getProperty(), tableDefPropertiesNameStyle))
|
||||
.append(" = new QueryColumn(this, \"")
|
||||
.append(columnInfo.getColumn()).append("\"");
|
||||
@ -84,16 +78,22 @@ public class ContentBuilder {
|
||||
}
|
||||
content.append(");\n");
|
||||
});
|
||||
content.append(" public QueryColumn ").append(StrUtil.buildFieldName("allColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn(this, \"*\");\n");
|
||||
content.append("\n 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(" public QueryColumn[] ").append(StrUtil.buildFieldName("defaultColumns", tableDefPropertiesNameStyle)).append(" = new QueryColumn[]{").append(defaultColumnJoiner).append("};\n\n");
|
||||
content.append(" public ").append(tableDefClassName).append("(String schema, String tableName) {\n")
|
||||
.append(" super(schema, tableName);\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 tableName = !StrUtil.isBlank(table.value())
|
||||
? 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");
|
||||
return content.toString();
|
||||
}
|
||||
@ -107,8 +107,8 @@ public class ContentBuilder {
|
||||
importBuilder.toString() +
|
||||
"\n// Auto generate by mybatis-flex, do not modify it.\n" +
|
||||
"public class " + tablesClassName + " {\n\n" +
|
||||
" private " + tablesClassName + "() {\n" +
|
||||
" }\n\n" +
|
||||
" private " + tablesClassName + "() {\n" +
|
||||
" }\n\n" +
|
||||
fieldBuilder.toString() +
|
||||
"\n}\n";
|
||||
}
|
||||
@ -121,15 +121,9 @@ public class ContentBuilder {
|
||||
String tableDefPackage = StrUtil.buildTableDefPackage(entityClass);
|
||||
String tableDefClassName = entityClassName.concat(tableDefClassSuffix);
|
||||
importBuilder.append("import ").append(tableDefPackage).append('.').append(tableDefClassName).append(";\n");
|
||||
String schema = !StrUtil.isBlank(table.schema())
|
||||
? table.schema()
|
||||
: "";
|
||||
String tableName = !StrUtil.isBlank(table.value())
|
||||
? table.value()
|
||||
: StrUtil.firstCharToLowerCase(entityClassName);
|
||||
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(" = new ").append(tableDefClassName).append("(\"").append(schema).append("\", \"").append(tableName).append("\");\n");
|
||||
.append(" = new ").append(tableDefClassName).append("();\n");
|
||||
}
|
||||
|
||||
}
|
||||
@ -24,7 +24,7 @@ import java.util.Objects;
|
||||
* @author 王帅
|
||||
* @since 2023-07-01
|
||||
*/
|
||||
public class ColumnInfo {
|
||||
public class ColumnInfo implements Comparable<ColumnInfo> {
|
||||
|
||||
/**
|
||||
* 属性名。
|
||||
@ -82,4 +82,12 @@ public class ColumnInfo {
|
||||
return property != null ? property.hashCode() : 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(ColumnInfo o) {
|
||||
// 先根据属性长度排序,属性名短的在上
|
||||
int compare = Integer.compare(property.length(), o.property.length());
|
||||
// 属性名长度一样,再按字母排序
|
||||
return compare == 0 ? property.compareTo(o.property) : compare;
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user