feat: Codegen 生成 entity base 时支持设置是否覆盖已有文件

This commit is contained in:
程序员小墨 2025-02-13 18:05:11 +08:00
parent e74e4044d1
commit 3a28c3b3b4
4 changed files with 38 additions and 1 deletions

View File

@ -303,6 +303,7 @@ globalConfig.getTemplateConfig()
| setSuperClass(Class) | Entity 类的父类,可以自定义一些 BaseEntity 类 | null | | setSuperClass(Class) | Entity 类的父类,可以自定义一些 BaseEntity 类 | null |
| setSuperClassFactory(Function<Table, Class>) | Entity 类的父类工厂,可以用于对特定的 Class 设置父类,而非全部 Entity 的父类 | null | | setSuperClassFactory(Function<Table, Class>) | Entity 类的父类工厂,可以用于对特定的 Class 设置父类,而非全部 Entity 的父类 | null |
| setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false | | setOverwriteEnable(boolean) | 是否覆盖之前生成的文件 | false |
| setEntityBaseOverwriteEnable(boolean) | 生成Base类时是否覆盖之前生成的文件 | false |
| setImplInterfaces(Class[]) | Entity 默认实现的接口 | Serializable.class | | setImplInterfaces(Class[]) | Entity 默认实现的接口 | Serializable.class |
| setWithLombok(boolean) | Entity 是否使用 Lombok 注解 | false | | setWithLombok(boolean) | Entity 是否使用 Lombok 注解 | false |
| setWithSwagger(boolean) | Entity 是否使用 Swagger 注解 | false | | setWithSwagger(boolean) | Entity 是否使用 Swagger 注解 | false |

View File

@ -60,6 +60,11 @@ public class EntityConfig implements Serializable {
*/ */
private boolean overwriteEnable; private boolean overwriteEnable;
/**
* 生成Base类时是否覆盖之前生成的文件
*/
private boolean baseOverwriteEnable;
/** /**
* Entity 默认实现的接口 * Entity 默认实现的接口
*/ */
@ -228,6 +233,21 @@ public class EntityConfig implements Serializable {
return this; return this;
} }
/**
* 生成Base类时是否覆盖原有文件
*/
public boolean isBaseOverwriteEnable() {
return baseOverwriteEnable;
}
/**
* 设置生成Base类时是否覆盖原有文件
*/
public EntityConfig setBaseOverwriteEnable(boolean baseOverwriteEnable) {
this.baseOverwriteEnable = baseOverwriteEnable;
return this;
}
/** /**
* 获取实现接口 * 获取实现接口
*/ */

View File

@ -888,6 +888,20 @@ public class GlobalConfig implements Serializable {
getEntityConfig().setOverwriteEnable(entityOverwriteEnable); getEntityConfig().setOverwriteEnable(entityOverwriteEnable);
} }
/**
* @see EntityConfig#isBaseOverwriteEnable()
*/
public boolean isEntityBaseOverwriteEnable() {
return getEntityConfig().isBaseOverwriteEnable();
}
/**
* @see EntityConfig#setBaseOverwriteEnable(boolean)
*/
public void setEntityBaseOverwriteEnable(boolean entityBaseOverwriteEnable) {
getEntityConfig().setBaseOverwriteEnable(entityBaseOverwriteEnable);
}
/** /**
* @see EntityConfig#getClassPrefix() * @see EntityConfig#getClassPrefix()
*/ */

View File

@ -139,7 +139,9 @@ public class EntityGenerator implements IGenerator {
File baseEntityJavaFile = new File(sourceDir, baseEntityPackagePath + "/" + baseEntityClassName + globalConfig.getFileType()); File baseEntityJavaFile = new File(sourceDir, baseEntityPackagePath + "/" + baseEntityClassName + globalConfig.getFileType());
if (baseEntityJavaFile.exists() && !entityConfig.isBaseOverwriteEnable()) {
return;
}
// 排除忽略列 // 排除忽略列
if (globalConfig.getStrategyConfig().getIgnoreColumns() != null) { if (globalConfig.getStrategyConfig().getIgnoreColumns() != null) {
table.getColumns().removeIf(column -> globalConfig.getStrategyConfig().getIgnoreColumns().contains(column.getName().toLowerCase())); table.getColumns().removeIf(column -> globalConfig.getStrategyConfig().getIgnoreColumns().contains(column.getName().toLowerCase()));