📄 代码生成模板自定义
内部资料,请刷新扫码登录
pigcloud 2023/6/4
# 代码生成原理
当开发者选中某张表进行代码生成时,如下图所示,首先会注入 PIGX 定义好的 Velocity 模板(开发平台 > 模板管理)。然后查询此表的相关元信息(字段、注释)并注入。最终使用 Velocity 渲染出相关文本。
# Velocity 模板基础
Entity 实体生成的模板代码
public class ${ClassName}Entity extends Model<${ClassName}Entity> {
#foreach ($field in $fieldList)
#if($field.primaryPk)
@TableId(type = IdType.ASSIGN_ID)
#end
@Schema(description="$comment"#if($field.hidden),hidden=$field.hidden#end)
private $field.attrType $field.attrName;
#end
}
# 上下文元信息
如下属性可在 Velocity 模板中直接使用相关语法进行取值
# 模板基本属性
Key | Description |
---|---|
dbType | 数据库类型 |
package | 包名 |
packagePath | 包路径 |
version | 版本 |
moduleName | 模块名 |
ModuleName | 模块名首字母大写 |
functionName | 功能名 |
FunctionName | 功能名首字母大写 |
formLayout | 表单布局 |
style | 样式,对应的模板组 |
author | 作者 |
datetime | 当前日期和时间 |
date | 当前日期 |
importList | 导入列表 |
tableName | 数据库表名 |
tableComment | 数据库表注释 |
className | 类名的小写形式 |
ClassName | 类名 |
fieldList | 字段列表 |
backendPath | 后端路径 |
frontendPath | 前端路径 |
childFieldList | 子表字段列表 |
childTableName | 子表名 |
mainField | 主表关联字段名称 |
childField | 子表关联字段名称 |
ChildClassName | 子类名首字母大写 |
childClassName | 子类名的小写形式 |
primaryList | 主键字段列表 |
formList | 表单字段列表 |
gridList | 表格字段列表 |
queryList | 查询字段列表 |
pk | 主键字段 |
# 模板字段属性
Key | Description |
---|---|
dsName | 数据源名 |
tableName | 表名称 |
fieldName | SQL 字段名称 |
fieldType | SQL 字段类型 |
attrName | Java 属性名 |
attrType | Java 属性类型 |
fieldComment | 字段说明 |
sort | 排序 |
packageName | 属性包名 |
autoFill | 自动填充 |
primaryPk | 是否为主键 |
baseField | 是否为基类字段 |
formItem | 是否为表单项 |
formRequired | 表单必填 |
formType | 表单类型 |
formValidator | 表单效验 |
gridItem | 是否为列表项 |
gridSort | 列表排序 |
queryItem | 是否为查询项 |
queryType | 查询方式 |
queryFormType | 查询表单类型 |
fieldDict | 字段字典类型 |
# 环境判断属性
Key | Description |
---|---|
isSpringBoot3 | 是否是 springboot3 |
isTenant | 是否支持多租户 |