- 表结构
-
代码截图
-
编写代码
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class Recursion {
@Autowired
private IRecursionTestService recursionTestService;
@Test
public void testRecursion() throws IOException {
// 递归查询
RecursionTest byId = recursionTestService.getById(1);
List<RecursionTest> recursionTests = new ArrayList<>();
this.recursionTests(byId.getId(),recursionTests);
System.out.println("打印子级长度 " + recursionTests.size());
recursionTests.stream().forEach(item -> {
System.out.println(item.getName());
});
}
private List<RecursionTest> recursionTests(String parentId, List<RecursionTest> list) {
RecursionTest one = recursionTestService.getOne(Wrappers.<RecursionTest>query().lambda().eq(RecursionTest::getParentId,parentId));
if (ObjectUtil.isEmpty(one)) {
return list;
} else {
list.add(one);
this.recursionTests(one.getId(),list);
}
return list;
}
}
- 打印结果