# 代码生成模板管理
# 概述
本功能用于配置代码生成的模板,支持用户自定义代码生成的内容。
【菜单路径】:系统配置化平台 -> 元数据 -> 代码生成模板管理
# 配置模板
点击页面新增或编辑按钮,即可配置模板,一个模板内可配置多个文件,文件内容语法为freemarker,详细规则参考freemarker模板引擎官方文档 (opens new window)
- 模板基本信息
字段名 | 字段说明 |
---|---|
编码 | 必填,全局唯一,最大长度为75 |
名称 | 必填, 最大长度为75 |
- 文件信息
字段名 | 字段说明 |
---|---|
编码 | 必填,模板内唯一,最大长度为75 |
名称 | 必填, 最大长度为75 |
文件命名规则 | 必填, 最大长度为75 |
文件扩展名 | 必填, 最大长度为75 |
文件类型 | 必填, JAVA文件/Resoure文件 |
提示
1、生成的文件最终的命名为:实体名+自定义名称+文件扩展名,如实体名为User,自定义名称为Service,文件扩展名为java,最终生成的文件名为UserService.java。
2、文件类型决定文件生成的位置:Java文件类型生成的文件在的main/java下;Resource文件类型生成的文件在main/resources下。
# 模板参数
模板文件中的可用参数为系统内置,具体如下:
{
"packagePath": "com.mediway.hos.model", //当前文件包路径
"author": "dx", //作者
"email": "dx@163.com", //作者邮箱
"urlPrefix": "/test/AHosAppPerson",//controller url前缀
"entityName": "AHosAppPerson",// 实体类名称
"apiServiceName": "hos-app-test",//api服务名
"entityComment": "人员表",//实体类注释
"primaryKeyType": "1",//主键类型 1:唯一主键 2:联合主键
"hasParentId": false,//是否有父主键
"parentType": "String",//父id类型
"tableName": "人员表",//表名称
"tableCode": "a_hos_app_person",//表编码
"i18nTable": "hos_app_person_i18n",//自定义国际化翻译表
"databaseEncrypt": true,//是否进行数据库加解密
"primaryKeyFieldType": "String",//主键字段类型
"parentIdFieldCode": "",//父主键编码
"idFieldCode": "id",//主键字段编码
"strategyName": "ASSIGN_UUID",//主键策略
"entityParentName": "BaseEntity",//父实体名称
"entityParentPackagePath": "com.mediway.hos.database.model.BaseEntity",//父实体包路径
"mapperParentName": "MppBaseMapper",//父实体mapper名称
"mapperParentPackagePath": "com.github.jeffreyning.mybatisplus.base.MppBaseMapper",//父实体mapper包路径
"serviceParentName": "BaseService",//父实体service名称
"serviceParentPackagePath": "com.mediway.hos.database.service.BaseService",//父实体service包路径
"serviceImplParentName": "BaseServiceImpl",//父实体service impl名称
"serviceImplParentPackagePath": "com.mediway.hos.database.service.impl.BaseServiceImpl",//父实体父实体service impl包路径
"onlys": ["code"],//需要唯一性校验的字段集合
"isTree": false,//是否是树形实体
"isOpenI18n": true,//是否需要国际化
"i18nFieldList": ["name"],//需要国际化的字段集合
"primaryKeyCodeList": ["id"],//主键字段集合
"ancestorsFieldCode": "",//祖级主键
"entityFields": [{//业务字段集合(不含父模板字段)
"comment": "编码",//字段注释
"persist": true,//是否持久化
"type": "String",//字段Java类型
"mainType": "string",//字段主类型
"columnName": "code",//字段表名称
"fieldName": "code",//字段实体名称
"notNull": false,//非空
"notBlank": true,//是否必填
"i18n": false,//是否需要国际化
"databaseEncrypt": true,//是否需要数据库加解密
"dataCheck": "^d{6,}$",//数据校验正则表达式
"dataCheckMessage": "",//数据校验失败提示信息
"businessType": 1, //业务类型(编码含义请查看数据字典
"maxValue": "",//最大值
"minValue": "",//最小值
"fieldLength": 32,//字段长度
"isPrimary": 0 //是否主键
}, {
"comment": "名称",
"persist": true,
"type": "String",
"mainType": "string",
"columnName": "name",
"fieldName": "name",
"notNull": false,
"notBlank": false,
"i18n": true,
"databaseEncrypt": false,
"dataCheckMessage": "",
"maxValue": "",
"minValue": "",
"fieldLength": 75,
"isPrimary": 0
}],
"allFields": [{//所有字段集合(含父模板字段)
"comment": "编码",
"persist": true,
"type": "String",
"mainType": "string",
"columnName": "code",
"fieldName": "code",
"notNull": false,
"notBlank": true,
"i18n": false,
"databaseEncrypt": true,
"dataCheckMessage": "",
"maxValue": "",
"minValue": "",
"fieldLength": 32,
"isPrimary": 0
}],
"relatefields": [{// 关联关系字段集合
"type": "List<AHosAppMenu>", //字段类型
"fieldName": "menuList", //字段名称
"annotation": "BindMiddleEntityList", //注解
"entity": "AHosAppMenu.class", //关联实体名
"condition": "menu_id = id", //关联关系
"middleEntity": "AHosAppPersonMenu.class", //中间表实体名
"middleCondition": "id = person_id" //中间表关联关系
}, {
"type": "List<AHosAppPersonEdu>",
"fieldName": "eduList",
"annotation": "BindEntityList",
"entity": "AHosAppPersonEdu.class",
"condition": "id = person_id"
}],
"codePackageMap": { //文件包路径Map<文件编码,包路径>
"Mapper": "com.mediway.hos.mapper",
"Entity": "com.mediway.hos.model",
"MapperXml": "mapper",
"ServiceImpl": "com.mediway.hos.service.impl",
"Service": "com.mediway.hos.service",
"Api": "com.mediway.hos.api",
"Controller": "com.mediway.hos.controller"
},
"codeClassNameMap": { //文件类名Map<文件编码,类名>
"Mapper": "AHosAppPersonMapper",
"Entity": "AHosAppPerson",
"MapperXml": "AHosAppPersonMapper",
"ServiceImpl": "AHosAppPersonServiceImpl",
"Service": "AHosAppPersonService",
"Api": "AHosAppPersonApi",
"Controller": "AHosAppPersonController"
}
}