DodoTreeRef:树注解

配置说明

属性名称 备注
mapParentField 上级字段名。注:多表树时,如果最外层实体类不是树状结构,则配置固定值:__ROOT_END__
selfQueryParams 附加查询条件,多个查询条件使用符号“;”隔开 具体参见源代码中的注释

一、单表树

单表树,指的是,一个实体类中有一个字段,指向父级

DEMO例子:

例子:如系统中的菜单实体类

/**
 * 菜单实体类,有字段parentMenuInfo指向父级菜单,自身为一棵树
 */
// mapParentField 指向父级字段 parentMenuInfo
@DodoTreeRef(mapParentField = "parentMenuInfo")
public class MenuInfo extends BaseEntity{
    @DodoField(sortSeq = 1,name="父级菜单")
    private MenuInfo          parentMenuInfo;
    //.....
}

图片

二、多表树

多表树,指的是,A实体中字段指向B实体,B实体字段指向C实体,那么ABC实体即为树状结构

例子:如系统中的国家、省份、城市、区域组成了多表树

/**
 * 国家
 */
// 国家本身不是树状结构,mapParentField执行固定值:__ROOT_END__
@DodoTreeRef(mapParentField = "__ROOT_END__")
public class Country extends BaseEntity{
    //.....
}

/**
 * 省份
 */
//mapParentField 指向父级字段 country
@DodoTreeRef(mapParentField = "country")
public class Province extends BaseEntity{
    @DodoField(sortSeq = 1,name="所属国家")
    private Country country;
    //.....
}


/**
 * 城市
 */
// mapParentField 指向父级字段 province
@DodoTreeRef(mapParentField = "province")
public class Country extends BaseEntity{
    @DodoField(sortSeq = 1,name="所属省份")
    private Province province;
    //.....
}

图片

三、混合树

混合树,是在多表树的基础上,最顶层实体类可自成单表树

例子:如系统中的菜单+权限组成了混合树

/**
 * 菜单实体类,有字段parentMenuInfo指向父级菜单,自身为一棵树
 */
// mapParentField 指向父级字段 parentMenuInfo
@DodoTreeRef(mapParentField = "parentMenuInfo")
public class MenuInfo extends BaseEntity{
    @DodoField(sortSeq = 1,name="父级菜单")
    private MenuInfo          parentMenuInfo;
    //.....
}

/**
 * 权限实体类
 */
// mapParentField 指向父级字段 menuInfo
@DodoTreeRef(mapParentField = "menuInfo")
public class Right extends BaseEntity{
    @DodoField(sortSeq = 1,name="归属菜单")
    private MenuInfo          menuInfo;
    //.....
}

图片

Copyright © Dodo Framework 2019 all right reservedModify At: 2019-12-23 15:16:56