У нас есть структура, в которой у Parent может быть несколько дочерних элементов с вложенной структурой.
1: Parent p1
child c1
c1.1
c1.2
child c2
c2.1
c2.3
Теперь, используя один шифрованный запрос, мне нужно получить всю структуру с помощью Spring + Neo 4j.
Модель:
Человек:
@Relationship( direction = Relationship.OUTGOING, type = "PARENT")
private Person parent;
@Relationship( direction = Relationship.INCOMING, type = "PARENT")
private List<Person> child;
Cypher Query: -
MATCH (p:Person {name:"john"})<-[pr:PARENT*..2]-(p1:Person) return c1
Дает мне только ребенка, но не ребенка следующего уровня
MATCH (p:Person {name:"john"})<-[pr:PARENT*..2]-(p1:Person) return pr
Дает мне вложенную структуру, которая является рекурсивной и бесполезной.
Подход: - repository.findOne (personId, 2);
У меня та же проблема, что и при расширении дочерней структуры, в которой есть одна ссылка на родительский объект.
Например: -
Родитель p1, потомок c1 -> три объекта
1: child-p1 --- it would have a reference to Parent Object p1
2: c1.1 ---
child --it would reference to Child C1 since its parent
3: c1.2
child --it would reference to Child C1 since its parent
В идеале он не должен содержать никаких ссылок на родительский элемент в дочернем списке и, как следствие, проблемы с переполнением стека.
Я использую SDN 4.0.release