У меня есть следующая иерархия.Как реализовать каскадное удаление в Objectify?
GrandParent -> Родитель -> Ребенок
Родитель и ребенок использовать @Parent Ref<GrandParent>
и @Parent Ref<Parent>
создать там родительские отношения.
Я пытаюсь с хорошим способом сделать каскадное удаление для GrandParent
.
Я, конечно, могу загрузить всех детей, сгенерировать ключи от них и удалить ключ. Это кажется ужасно неэффективным. Есть ли что-то, что я мог бы запросить у родителя и превратить результаты запроса в список ключей без необходимости выполнять полную выборку?
Любые мысли или сторонние библиотеки приветствуются.
Привет Марк, спасибо, это работает для меня. Однако обратите внимание на то, что второй вызов delete на entityKey не нужен. Документы fory() указывают, что родительский элемент будет включен в список ключей и, следовательно, также удален первым вызовом: Ограничивает набор результатов только объектами, которые имеют заданный предок где-то в цепочке. Не обязательно быть непосредственным родителем. Указанный предок будет включен в результирующий набор (если он существует). – Pega88
@ Pega88 «Указанный предок будет включен в набор результирующего набора», похоже, было добавлено в документацию Objectify 5. Хорошая находка! Спасибо, я использую Objectify v5. –
HI, будет ли этот код правильно функционировать независимо от количества детей? Будет ли проблема с большим количеством детей? – Sreekanth