如果您使用MyBatis作为ORM框架,可以使用以下方式在XML中编写递归查询:
首先,在DepartmentMapper.xml文件中添加一个名为findTree的select语句:
```
```
这将返回所有顶级部门。
然后,创建一个名为findChildren的递归查询语句:
```
```
这将返回指定父级部门的所有子部门。
最后,在DepartmentMapper.xml文件中定义一个名为findDepartmentTree的resultMap,它将使用递归查询来构建整个部门树:
```
```
在这里,我们定义了一个名为departmentResultMap的resultMap,它包含一个名为children的集合属性,该属性使用递归查询语句findChildren来填充子部门。此外,我们还使用了一个名为parent的关联属性,它将父级部门映射到Department对象中。
最后,在DepartmentMapper接口中添加一个名为findDepartmentTree的方法:
```
public interface DepartmentMapper {
List
findDepartmentTree();
}
```
现在,当您调用findDepartmentTree()方法时,将返回整个部门树形结构。