feat: 同步 APT 与 代码生成器 的配置。

This commit is contained in:
Suomm 2023-07-05 22:43:55 +08:00
parent 45b2308cd6
commit 1e688d93e2
3 changed files with 69 additions and 6 deletions

View File

@ -15,6 +15,8 @@
*/ */
package com.mybatisflex.codegen.config; package com.mybatisflex.codegen.config;
import com.mybatisflex.core.util.StringUtil;
/** /**
* 生成 TableDef 的配置 * 生成 TableDef 的配置
* *
@ -39,6 +41,30 @@ public class TableDefConfig {
*/ */
private boolean overwriteEnable; private boolean overwriteEnable;
/**
* 生成辅助类的字段风格
*/
private NameStyle propertiesNameStyle = NameStyle.UPPER_CASE;
/**
* 生成的表对应的变量后缀
*/
private String instanceSuffix = "";
public String buildFieldName(String property) {
switch (propertiesNameStyle) {
case UPPER_CASE:
return StringUtil.camelToUnderline(property).toUpperCase();
case LOWER_CASE:
return StringUtil.camelToUnderline(property).toLowerCase();
case UPPER_CAMEL_CASE:
return StringUtil.firstCharToUpperCase(property);
case LOWER_CAMEL_CASE:
default:
return StringUtil.firstCharToLowerCase(property);
}
}
/** /**
* 获取类前缀 * 获取类前缀
*/ */
@ -84,4 +110,31 @@ public class TableDefConfig {
return this; return this;
} }
public NameStyle getPropertiesNameStyle() {
return propertiesNameStyle;
}
public TableDefConfig setPropertiesNameStyle(NameStyle propertiesNameStyle) {
this.propertiesNameStyle = propertiesNameStyle;
return this;
}
public String getInstanceSuffix() {
return instanceSuffix;
}
public TableDefConfig setInstanceSuffix(String instanceSuffix) {
this.instanceSuffix = instanceSuffix;
return this;
}
public enum NameStyle {
UPPER_CASE,
LOWER_CASE,
UPPER_CAMEL_CASE,
LOWER_CAMEL_CASE
}
} }

View File

@ -311,6 +311,14 @@ public class Column {
return importClasses; return importClasses;
} }
public boolean isLarge() {
if (columnConfig != null && columnConfig.getLarge() != null) {
return columnConfig.getLarge();
} else {
return false;
}
}
@Override @Override
public String toString() { public String toString() {
return "Column{" + return "Column{" +

View File

@ -1,3 +1,4 @@
#set(tableDefClassName = table.buildTableDefClassName())
package #(packageConfig.tableDefPackage); package #(packageConfig.tableDefPackage);
import com.mybatisflex.core.query.QueryColumn; import com.mybatisflex.core.query.QueryColumn;
@ -9,18 +10,19 @@ import com.mybatisflex.core.table.TableDef;
* @author #(javadocConfig.getAuthor()) * @author #(javadocConfig.getAuthor())
* @since #(javadocConfig.getSince()) * @since #(javadocConfig.getSince())
*/ */
public class #(table.buildTableDefClassName()) extends TableDef { public class #(tableDefClassName) extends TableDef {
public static final #(table.buildTableDefClassName()) #(table.name) = new #(table.buildTableDefClassName())("#(table.name)"); public static final #(tableDefClassName) #(tableDefConfig.buildFieldName(table.buildEntityClassName() + tableDefConfig.instanceSuffix)) = new #(tableDefClassName)("#(table.name)");
#for(column: table.columns) #for(column: table.columns)
public QueryColumn #(column.name) = new QueryColumn(this, "#(column.name)"); public QueryColumn #(tableDefConfig.buildFieldName(column.property)) = new QueryColumn(this, "#(column.name)");
#end #end
public QueryColumn[] default_columns = new QueryColumn[]{#for(column: table.columns) #if(!column.name.equals("del_flag"))#(column.name)#if(for.index + 1 != for.size),#end#end#end}; public QueryColumn #(tableDefConfig.buildFieldName("allColumns")) = new QueryColumn(this, "*");
public QueryColumn[] all_columns = new QueryColumn[]{#for(column: table.columns) #(column.name)#if(for.index + 1 != for.size),#end#end}; 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 #(table.buildTableDefClassName())(String tableName) { public #(tableDefClassName)(String tableName) {
super(tableName); super(tableName);
} }
} }