Merge pull request #495 from coder-xiaomo/feat-base-override

feat: Codegen 生成 entity base 时支持设置是否覆盖已有文件
This commit is contained in:
Michael Yang 2025-02-14 09:56:11 +08:00 committed by GitHub
commit be123d50d0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 38 additions and 1 deletions

View File

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

View File

@ -60,6 +60,11 @@ public class EntityConfig implements Serializable {
*/
private boolean overwriteEnable;
/**
* 生成Base类时是否覆盖之前生成的文件
*/
private boolean baseOverwriteEnable;
/**
* Entity 默认实现的接口
*/
@ -228,6 +233,21 @@ public class EntityConfig implements Serializable {
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);
}
/**
* @see EntityConfig#isBaseOverwriteEnable()
*/
public boolean isEntityBaseOverwriteEnable() {
return getEntityConfig().isBaseOverwriteEnable();
}
/**
* @see EntityConfig#setBaseOverwriteEnable(boolean)
*/
public void setEntityBaseOverwriteEnable(boolean entityBaseOverwriteEnable) {
getEntityConfig().setBaseOverwriteEnable(entityBaseOverwriteEnable);
}
/**
* @see EntityConfig#getClassPrefix()
*/

View File

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