工作中可能会碰到一个表中存在父子关系,需要查询多级结构的树形数据场景(如图1-1),因此我们可以使用递归来实现

首先我建了一个测试的菜单表:

其中最顶级的菜单的父类ID是用0表示的,下面我们就来查询这张表
建一个返回菜单数据的实体类
public class Menu {
/** 主键id */
private long ID;
/** 父类主键 */
private long parentid;
/** 菜单名称 */
private String name;
/** 菜单类型 */
private String type;
/** 菜单编码 */
private String code;
/** 子类菜单数据 */
@TableField(exist = false)
private List这里省略了get,set方法,childMenu是用于装子类数据的;@TableField(exist = false)表示该属性不为数据库表字段,但是必须使用
控制层代码: