模型数据管理器
大约 4 分钟
模型数据管理器
数据管理器是什么?
数据管理器和数据构造器是Oinone为模型自动赋予的Function是内在数据管理能力,数据管理器针对存储模型是方便在大家编程模式下可以利用数据管理器Function快速达到相关数据操作的目的。数据构造器则主要用于模型进行初始化时字段默认值计算和页面交互
数据管理器
只有存储模型才有数据管理器。如果@Model.Advanced
注解设置了dataManager属性为false,则表示在UI层不开放默认数据管理器。开放级别为API则表示UI层可以通过HTTP请求利用Pamirs标准网关协议进行数据交互。
模型默认数据读管理器
函数编码 | 描述 | 开放级别 |
---|---|---|
queryByPk | 根据主键查询单条记录,会进行主键值检查 | Local、Remote |
queryByEntity | 根据实体查询单条记录 | Local、Remote、Api |
queryByWrapper | 根据查询类查询单条记录 | Local、Remote |
queryListByEntity | 根据实体查询返回记录列表 | Local、Remote |
queryListByWrapper | 根据查询类查询记录列表 | Local、Remote |
queryListByPage | 根据实体分页查询返回记录列表 | Local、Remote |
queryListByPageAndWrapper | 根据查询类分页查询记录列表 | Local、Remote |
queryPage | 分页查询返回分页对象,分页对象中包含记录列表 | Local、Remote、Api |
countByEntity | 按实体条件获取记录数量 | Local、Remote |
countByWrapper | 按查询类条件获取记录数量 | Local、Remote |
模型默认数据写管理器
函数编码 | 描述 | 开放级别 |
---|---|---|
createOne | 提交新增单条记录 | Local、Remote |
createOrUpdate | 新增或更新,需要为模型设置唯一索引,如果数据库检测到索引冲突,会更新数据,若未冲突则新增数据 | Local、Remote |
updateByPk | 根据主键更新单条记录,会进行主键值检查 | Local、Remote |
updateByUniqueField | 条件更新,条件中必须包含唯一索引字段 | Local、Remote |
updateByEntity | 按实体条件更新记录 | Local、Remote、Api |
updateByWrapper | 按查询类条件更新记录 | Local、Remote |
createBatch | 批量新增记录 | Local、Remote |
createOrUpdateBatch | 批量新增或更新记录 | Local、Remote |
updateBatch | 根据主键批量更新记录,会进行主键值检查 | Local、Remote |
deleteByPk | 根据主键删除单条记录,会进行主键值检查 | Local、Remote |
deleteByPks | 根据主键批量删除,会进行主键值检查 | Local、Remote |
deleteByUniqueField | 按条件删除记录,条件中必须包含唯一索引字段 | Local、Remote |
deleteByEntity | 根据实体条件删除 | Local、Remote、Api |
deleteByWrapper | 根据查询类条件删除 | Local、Remote |
createWithField | 新增实体记录并更新实体字段记录 | Local、Remote、Api |
updateWithField | 更新实体记录并更新实体字段记录 | Local、Remote、Api |
deleteWithFieldBatch | 批量删除实体记录并删除关联关系 | Local、Remote、Api |
如果模型继承IdModel,模型会自动设置主键设置为id,则会继承queryById、updateById和deleteById函数。
queryById
(详情,根据ID查询单条记录,开放级别为Remote)updateById
(提交更新单条记录,根据ID更新单条记录,开放级别为Remote)deleteById
(提交删除单条记录,根据ID删除单条记录,开放级别为Remote)
如果模型继承CodeModel,模型也会继承IdModel的数据管理器,编码字段code为唯一索引字段。在新增数据时会根据编码生成规则自动设置编码字段code的值,继承queryByCode、updateByCode和deleteByCode函数。
queryByCode
(详情,根据code查询单条记录,开放级别为Remote)updateByCode
(提交更新单条记录,根据code更新单条记录,开放级别为Remote)deleteByCode
(提交删除单条记录,根据code删除单条记录,开放级别为Remote)
没有主键或唯一索引的模型,在UI层不会开放默认数据写管理器。
数据构造器
模型数据构造器 construct:供前端新开页面构造默认数据使用。所有模型都拥有construct构造器,默认会将字段上配置的默认值返回给前端,另外可以在子类中覆盖construct方法。数据构造器 construct函数的开放级别为API,函数类型为QUERY查询函数,系统将识别模型中的以construct命名的函数强制设置为API开放级别和QUERY查询类型。
可以使用@Field
的defaultValue
属性配置字段的默认值。注意,枚举的默认值为枚举的name。