模板代码块下:
## ---------- BEGIN 字段循环遍历 ----------
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
/**
* ${field.comment}
*/
#end
@ApiModelProperty(name = "${field.propertyName}", value = "${field.comment}", dataType = "${field.propertyType}")
#if(${field.keyFlag})
## 主键
@TableId(value = "${field.name}", type = IdType.UUID)
#elseif(${field.fill})
## 普通字段
## ----- 存在字段填充设置 -----
@TableField(value = "${field.name}", fill = FieldFill.${field.fill})
#elseif(${field.name}=="tenantId")
@TableField(value = "${field.name}", exist=false)
#elseif(${field.convert})
@TableField("${field.name}")
#end
## 乐观锁注解
#if(${versionFieldName}==${field.name})
@Version
#end
## 逻辑删除注解
#if(${logicDeleteFieldName}==${field.name})
@TableLogic
#end
private ${field.propertyType} ${field.propertyName};
#end
## ---------- END 字段循环遍历 ----------
生成代码如图所示:
/**
* 角色ID
*/
@ApiModelProperty(name = "roleId", value = "角色ID", dataType = "Long")
@TableId(value = "ROLE_ID", type = IdType.UUID)
private Long roleId;
/**
* 角色名称
*/
@ApiModelProperty(name = "roleName", value = "角色名称", dataType = "String")
@TableField("ROLE_NAME")
private String roleName;
/**
* 角色描述
*/
@ApiModelProperty(name = "remark", value = "角色描述", dataType = "String")
@TableField("REMARK")
private String remark;
/**
* 创建时间
*/
@ApiModelProperty(name = "createTime", value = "创建时间", dataType = "LocalDateTime")
@TableField("CREATE_TIME")
private LocalDateTime createTime;
/**
* 修改时间
*/
@ApiModelProperty(name = "modifyTime", value = "修改时间", dataType = "LocalDateTime")
@TableField("MODIFY_TIME")
private LocalDateTime modifyTime;
可见缩进格式完全混乱,不利于阅读。
原因是因为velocity把空格缩进原封输出到代码格式中,因此模板中的脚本命令需要顶格编写,虽然影响可读性,但能保证生成代码的格式,另外这个顶格编写的命令,是包括注释关键字在内的。
修改后的模板文件如下:
## ---------- BEGIN 字段循环遍历 ----------
#foreach($field in ${table.fields})
#if(${field.keyFlag})
#set($keyPropertyName=${field.propertyName})
#end
#if("$!field.comment" != "")
/**
* ${field.comment}
*/
#end
@ApiModelProperty(name = "${field.propertyName}", value = "${field.comment}", dataType = "${field.propertyType}")
#if(${field.keyFlag})
## 主键
@TableId(value = "${field.name}", type = IdType.UUID)
#elseif(${field.fill})
## 普通字段
## ----- 存在字段填充设置 -----
@TableField(value = "${field.name}", fill = FieldFill.${field.fill})
#elseif(${field.name}=="tenantId")
@TableField(value = "${field.name}", exist=false)
#elseif(${field.convert})
@TableField("${field.name}")
#end
## 乐观锁注解
#if(${versionFieldName}==${field.name})
@Version
#end
## 逻辑删除注解
#if(${logicDeleteFieldName}==${field.name})
@TableLogic
#end
private ${field.propertyType} ${field.propertyName};
#end
## ---------- END 字段循环遍历 ----------