mybatis 查询所有子节点
时间: 2023-11-09 10:07:11 浏览: 159
MyBatis源码:原来 resultMap解析完是这样.docx
如果你的数据是树形结构,你可以使用 MyBatis-Tree-Plugin 这个插件来查询所有子节点。
这个插件提供了两个注解 `@TreeTable` 和 `@TreeId`,用来标注树形结构的表和节点 ID 字段。然后你可以使用 `TreeMapper` 提供的方法来查询所有子节点:
- `selectChildrenById`:查询指定节点的所有子节点。
- `selectDescendantsById`:查询指定节点的所有后代节点。
这里是一个示例:
首先,添加依赖:
```xml
<dependency>
<groupId>com.github.abel533</groupId>
<artifactId>mybatis-tree-plugin</artifactId>
<version>1.0.1</version>
</dependency>
```
在实体类中加上注解:
```java
@TreeTable(name = "department")
public class Department {
@TreeId
private Long id;
private String name;
private Long parentId;
// 省略 getter 和 setter
}
```
在 Mapper 接口中继承 `TreeMapper` 并使用查询方法:
```java
public interface DepartmentMapper extends TreeMapper<Department> {
List<Department> selectChildrenById(Long id);
List<Department> selectDescendantsById(Long id);
}
```
这样就可以通过调用 `selectChildrenById` 或 `selectDescendantsById` 方法来查询所有子节点了:
```java
List<Department> children = departmentMapper.selectChildrenById(1L);
List<Department> descendants = departmentMapper.selectDescendantsById(1L);
```
阅读全文