- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
public Dir delete(){
MorphiaQuery dirs = getDirList(); //Получаем подпапки
if(dirs != null){
Iterator<Dir> list = dirs.iterator();
while(list.hasNext()){
list.next().delete(); //Снова вызываем public Dir delete()
}
}
return super.delete(); //Удаляем саму папку
}
я как-то раз делал через простую аггрегацию: идентификаторы собирал в списки по номеру уровня, потом удалял батчами начиная с самого низкого уровня, что бы констрэйны не жаловались.
> а потом сделать это грамотно
по моему опыту, в случае работы с базами и проблем производительности "а потом" очень часто оказывается слишком поздно.
базы имеют конкретные способности с заранее известными параметрами производительности - их и надо использовать как основу для дизайна. а не наоборот. в оссобености если заранее известно что размер данных будет большим.