Я хочу, чтобы в схеме Понци отображалось общее количество пользователей, которые у меня есть ниже.
Это жестко закодированный метод, который работает, и я хочу сделать его рекурсивным
public int getAllChildrenFromDown(List<Credential> children) {
if (!(children.size() == 0)) {
for (Credential child : children) {
count = count + 1;
List<Credential> grandChildren = credentialRepository.findByParentId(child.getParentId());
if (!(grandChildren.size() == 0)) {
for (Credential grandChild : grandChildren) {
count = count + 1;
List<Credential> greatGrandChildren = credentialRepository.findByParentId(grandChild.getParentId());
if (!(greatGrandChildren.size() == 0)) {
for (Credential greatGrandChild : greatGrandChildren) {
count = count + 1;
List <Credential> greatGreatGrandChildren =credentialRepository.findByParentId(greatGrandChild.getParentId());
if(!(greatGreatGrandChildren.size()==0)) {
for (Credential greatGreatGr: greatGreatGrandChildren) {
count=count +1;
}
}
}
}
}
}
}
}
return count;
}
Ниже то, что я пытался, но я получаю бесконечный цикл
public int getAllChildrenFromDown(List<Credential> children) {
if (!(children.size() == 0)) {
for (Credential child : children) {
count = count + 1;
List<Credential> grandChildren = credentialRepository.findByParentId(child.getParentId());
getAllChildrenFromDown(grandChildren);
}
}
return count;
}
Есть идеи?