diff --git a/docs/zh/others/codegen.md b/docs/zh/others/codegen.md index 0620d174..e8ebbfaf 100644 --- a/docs/zh/others/codegen.md +++ b/docs/zh/others/codegen.md @@ -303,6 +303,7 @@ globalConfig.getTemplateConfig() | setSuperClass(Class) | Entity 类的父类,可以自定义一些 BaseEntity 类 | null | | setSuperClassFactory(Function) | 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 | diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/EntityConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/EntityConfig.java index e3cf2b67..853e8e90 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/EntityConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/EntityConfig.java @@ -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; + } + /** * 获取实现接口。 */ diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java index dfc533d1..f1b55083 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/config/GlobalConfig.java @@ -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() */ diff --git a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java index 06cc9ceb..df40b066 100644 --- a/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java +++ b/mybatis-flex-codegen/src/main/java/com/mybatisflex/codegen/generator/impl/EntityGenerator.java @@ -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()));