跳至主要內容

模型概述

Mr.Hope大约 2 分钟

模型概述

模型的定义

在 Oinone 中,模型是驱动应用程序的核心元素之一。

模型(model):Oinone一切从模型出发,是数据及对行为的载体:

  1. 是对所需要描述的实体进行必要的简化,并用适当的变现形式或规则把它的主要特征描述出来所得到的系统模仿品。模型由元信息、字段、数据管理器和自定义函数构成;
  2. 符合面向对象设计原则包括:封装、继承、多态。
  3. 定义模型,并配上相应的菜单或配置模块的homepage为该模型,模块就具备了可访问的该模型对应的列表页、新增页、修改页、删除记录和导入导出功能。

构建宠物店铺模型

package pro.shushi.pamirs.demo.api.model;

import pro.shushi.pamirs.meta.annotation.Field;
import pro.shushi.pamirs.meta.annotation.Model;
import pro.shushi.pamirs.meta.base.IdModel;

import java.sql.Time;

@Model.model(PetShop.MODEL_MODEL)
@Model(displayName = "宠物店铺",summary="宠物店铺")
public class PetShop extends IdModel {
    public static final String MODEL_MODEL="demo.PetShop";

    @Field(displayName = "店铺名称",required = true)
    private String shopName;
    
    @Field(displayName = "开店时间",required = true)
    private Time openTime;

    @Field(displayName = "闭店时间",required = true)
    private Time closeTime;
}

配置注解

  1. 模型类必需使用@Model注解来标识当前类为模型类。
  2. 可以使用@Model.model、@Fun注解模型的模型编码(也表示命名空间),先取@Model.model注解值,若为空则取@Fun注解值,若皆为空则取全限定类名。
  3. 使用@Model.model注解配置模型编码,模型编码唯一标识一个模型。
  4. 请勿使用Query和Mutation作为模型编码和技术名称的结尾。
  5. 上方示例使用Model注解和Field注解来定义一个实体模型。displayName属性最终会作为label展现在前端界面上。

更多Model的详细元数据描述介绍参见【模型元数据详解】https://shushi.yuque.com/yoxz76/oio3/niiyrn