# 实体定义

实体结构定义示例:

{
	"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"  // 排序
                }
			]
		}
	}
}
顶部