# 实体定义
实体结构定义示例:
{
"name": "entityName", // 实体名称,必须是英文,驼峰命名
"title": "entity_title", // 实体显示标题
"description": "entity_desc", // 实体描述
"datasource": "datasource_name", // 所属数据源名称, 默认default
"database": "database_name", // 所属数据库名称
"tableName": "table_name", // 对应数据库中物理表名
// 示例字段
"fields": {
"id": {
"name": "id", // 字段名称
"title": "field_title", // 字段显示标题
"description": "field_desc", // 字段描述
"type": "varchar", // 字段类型, JDBC类型即数据库类型,varchar,
"dataType": "String", // 程序层面数据类型,例如Array,Object,Boolean,Map,List,String
"primaryKey": true, // 是否主键
"nullable": false, // 是否可空
"autoIncrement": false, // 是否自增
"idGenerator": "UUID", // ID生成器,可指定生成ID处理器
"length": 36, // 字段长度
"precision": null, // 字段精度,有效数字位数
"scale": null, // 字段刻度,字段的小数位数/长度
"insertable": true, // 是否允许创建时传入字段值
"updatable": true, // 是否允许更新字段值
"writable": true, // 是否可以写入,同时控制 insertable 和 updatable
"sortable": true, // 是否可以排序
"filterable": true, // 是否支持过滤
"defaultValue": "vars.now", // 程序默认值,支持表达式
"optionSet": "option_name", // 引用的选项集
"domain": "domain_id", // 引用的数据域id
"columnName": "id", // 物理字段名
"columnDefault": "now()", // 物理字段默认值
"attrs": { // 扩展字段描述
"attr1": "",
"attr2": ""
}
}
},
"relations": {
// 示例关系
"relation_name": {
"name": "relation_name", // 关系名称
"title": "relation_title", // 关系显示标题
"description": "relation_desc", // 关系描述
"type": "MANY_TO_ONE", // 关系类型
"targetEntity": "User", // 关系指向的目标实体
"joinFields": [
{
"local": "userId", // 当前实体的字段
"target": "id" // 对应目标实体的字段
}
],
"optional": true, // 表示关系是否可选,影响数据访问中关联查询时使用的 join 类型
"expandable": true, // 是否可以展开查询
"generateForeignKey": true, // 是否生成外键
"foreignKeyName": "fk_<t1>_<f1>_<t2>_<f2>" // 生成到数据库的外键名称
}
},
"indexes": {
// 示例索引
"index_name": {
"name": "index_name", // 索引名称
"title": "index_title", // 索引标题
"description": "index_desc", // 索引描述
"unique": true, // 是否唯一索引
"fields": [ // 索引字段
{
"name": "id", // 字段
"order": "ASC" // 排序
}
]
}
}
}