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;
//.....
}
当前内容版权归 DodoFramework 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 DodoFramework .