Merge pull request #502 from coder-xiaomo/feat-lombokConstructorEnable

feat: 支持配置 entity 类 lombok 注解生成 (`@NoArgsConstructor`, `@AllArgsConstructor`)
This commit is contained in:
Michael Yang 2025-02-28 13:24:27 +08:00 committed by GitHub
commit b326a824b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 88 additions and 2 deletions

View File

@ -306,6 +306,8 @@ globalConfig.getTemplateConfig()
| setEntityBaseOverwriteEnable(boolean) | 生成Base类时是否覆盖之前生成的文件 | 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 |
| lombokNoArgsConstructorEnable(boolean) | 当开启 Lombok 注解且不使用 Active Record 时,是否生成 Entity @NoArgsConstructor 注解 | true |
| lombokAllArgsConstructorEnable(boolean) | 当开启 Lombok 注解且不使用 Active Record 时,是否生成 Entity @AllArgsConstructor 注解 | true |
| setWithSwagger(boolean) | Entity 是否使用 Swagger 注解 | false | | setWithSwagger(boolean) | Entity 是否使用 Swagger 注解 | false |
| setSwaggerVersion(EntityConfig.SwaggerVersion) | Swagger 注解版本 | SwaggerVersion.FOX | | setSwaggerVersion(EntityConfig.SwaggerVersion) | Swagger 注解版本 | SwaggerVersion.FOX |
| setWithActiveRecord(boolean) | 是否生成 Active Record 模式的 Entity | false | | setWithActiveRecord(boolean) | 是否生成 Active Record 模式的 Entity | false |

View File

@ -75,6 +75,16 @@ public class EntityConfig implements Serializable {
*/ */
private boolean withLombok; private boolean withLombok;
/**
* 当开启 Lombok 注解且不使用 Active Record 是否生成 Entity @NoArgsConstructor 注解
*/
private boolean lombokNoArgsConstructorEnable = true;
/**
* 当开启 Lombok 注解且不使用 Active Record 是否生成 Entity @AllArgsConstructor 注解
*/
private boolean lombokAllArgsConstructorEnable = true;
/** /**
* Entity 是否使用 Swagger 注解 * Entity 是否使用 Swagger 注解
*/ */
@ -278,6 +288,36 @@ public class EntityConfig implements Serializable {
return this; return this;
} }
/**
* 当开启 Lombok 注解且不使用 Active Record 是否生成 Entity @NoArgsConstructor 注解
*/
public boolean isLombokNoArgsConstructorEnable() {
return lombokNoArgsConstructorEnable;
}
/**
* 设置当开启 Lombok 注解且不使用 Active Record 是否生成 Entity @NoArgsConstructor 注解
*/
public EntityConfig setLombokNoArgsConstructorEnable(boolean lombokNoArgsConstructorEnable) {
this.lombokNoArgsConstructorEnable = lombokNoArgsConstructorEnable;
return this;
}
/**
* 当开启 Lombok 注解且不使用 Active Record 是否生成 Entity @AllArgsConstructor 注解
*/
public boolean isLombokAllArgsConstructorEnable() {
return lombokAllArgsConstructorEnable;
}
/**
* 设置当开启 Lombok 注解且不使用 Active Record 是否生成 Entity @AllArgsConstructor 注解
*/
public EntityConfig setLombokAllArgsConstructorEnable(boolean lombokAllArgsConstructorEnable) {
this.lombokAllArgsConstructorEnable = lombokAllArgsConstructorEnable;
return this;
}
/** /**
* 是否启用 Swagger * 是否启用 Swagger
*/ */

View File

@ -986,6 +986,34 @@ public class GlobalConfig implements Serializable {
getEntityConfig().setWithLombok(entityWithLombok); getEntityConfig().setWithLombok(entityWithLombok);
} }
/**
* @see EntityConfig#isLombokNoArgsConstructorEnable()
*/
public boolean isEntityLombokNoArgsConstructorEnable() {
return getEntityConfig().isLombokNoArgsConstructorEnable();
}
/**
* @see EntityConfig#setLombokNoArgsConstructorEnable(boolean)
*/
public EntityConfig setEntityLombokNoArgsConstructorEnable(boolean entityLombokNoArgsConstructorEnable) {
return getEntityConfig().setLombokNoArgsConstructorEnable(entityLombokNoArgsConstructorEnable);
}
/**
* @see EntityConfig#isLombokAllArgsConstructorEnable()
*/
public boolean isEntityLombokAllArgsConstructorEnable() {
return getEntityConfig().isLombokAllArgsConstructorEnable();
}
/**
* @see EntityConfig#setLombokAllArgsConstructorEnable(boolean)
*/
public EntityConfig setEntityLombokAllArgsConstructorEnable(boolean entityLombokAllArgsConstructorEnable) {
return getEntityConfig().setLombokAllArgsConstructorEnable(entityLombokAllArgsConstructorEnable);
}
/** /**
* @see EntityConfig#isWithSwagger() * @see EntityConfig#isWithSwagger()
*/ */

View File

@ -83,7 +83,7 @@ public class EntityGenerator implements IGenerator {
table.getColumns().removeIf(column -> globalConfig.getStrategyConfig().getIgnoreColumns().contains(column.getName().toLowerCase())); table.getColumns().removeIf(column -> globalConfig.getStrategyConfig().getIgnoreColumns().contains(column.getName().toLowerCase()));
} }
Map<String, Object> params = new HashMap<>(6); Map<String, Object> params = new HashMap<>(7);
params.put("table", table); params.put("table", table);
params.put("entityPackageName", packageConfig.getEntityPackage()); params.put("entityPackageName", packageConfig.getEntityPackage());
params.put("entityConfig", entityConfig); params.put("entityConfig", entityConfig);
@ -147,7 +147,7 @@ public class EntityGenerator implements IGenerator {
table.getColumns().removeIf(column -> globalConfig.getStrategyConfig().getIgnoreColumns().contains(column.getName().toLowerCase())); table.getColumns().removeIf(column -> globalConfig.getStrategyConfig().getIgnoreColumns().contains(column.getName().toLowerCase()));
} }
Map<String, Object> params = new HashMap<>(6); Map<String, Object> params = new HashMap<>();
params.put("table", table); params.put("table", table);
params.put("entityPackageName", baseEntityPackagePath.replace("/", ".")); params.put("entityPackageName", baseEntityPackagePath.replace("/", "."));
params.put("entityClassName", baseEntityClassName); params.put("entityClassName", baseEntityClassName);

View File

@ -30,10 +30,14 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
#else #else
#if(entityConfig.isLombokAllArgsConstructorEnable())
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
#end
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
#if(entityConfig.isLombokNoArgsConstructorEnable())
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
#end
#if(entityConfig.getSuperClass(table)) #if(entityConfig.getSuperClass(table))
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
#end #end
@ -58,8 +62,12 @@ import lombok.EqualsAndHashCode;
#else #else
@Data @Data
@Builder @Builder
#if(entityConfig.isLombokNoArgsConstructorEnable())
@NoArgsConstructor @NoArgsConstructor
#end
#if(entityConfig.isLombokAllArgsConstructorEnable())
@AllArgsConstructor @AllArgsConstructor
#end
#if(entityConfig.getSuperClass(table)) #if(entityConfig.getSuperClass(table))
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
#end #end

View File

@ -26,12 +26,16 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
#else #else
#if(entityConfig.isLombokAllArgsConstructorEnable())
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
#end
import lombok.Builder; import lombok.Builder;
import lombok.Data; import lombok.Data;
#if(entityConfig.isLombokNoArgsConstructorEnable())
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
#end #end
#end #end
#end
#if(jdkVersion >= 14) #if(jdkVersion >= 14)
import java.io.Serial; import java.io.Serial;
#end #end
@ -56,10 +60,14 @@ import java.io.Serial;
#else #else
@Data @Data
@Builder @Builder
#if(entityConfig.isLombokNoArgsConstructorEnable())
@NoArgsConstructor @NoArgsConstructor
#end
#if(entityConfig.isLombokAllArgsConstructorEnable())
@AllArgsConstructor @AllArgsConstructor
#end #end
#end #end
#end
#if(withSwagger && swaggerVersion.getName() == "FOX") #if(withSwagger && swaggerVersion.getName() == "FOX")
@ApiModel("#(table.getComment())") @ApiModel("#(table.getComment())")
#end #end