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()));