Запрос Neo4j, возвращающий больше узлов - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над приложением java, использующим Neo4j в качестве БД. Моя модель данных использует класс, связанный с тем же классом в типе дочерних и родительских отношений. У меня есть запрос, чтобы получить все дочерние элементы для определенного узла, однако, поскольку родительский и дочерний элементы относятся к одному классу, мой запрос возвращает все узлы, включая родительский узел. См. Код ниже:

@NodeEntity
class A {
    @Id
    private String id;

    @Relationship(type = "PARENT")
    private Parent parent;

    // Constructor, getters, setters, etc.
}

@RelationshipEntity(type = "PARENT")
class Parent {
    @Id
    @GeneratedValue
    private Long relationshipId;

    @StartNode
    private A child;

    @EndNode
    private A parent;
    // Constructor, getters, setters, etc.
}

class Repository { // simplified repository class
    @Query("MATCH(c:A)-[r:PARENT]->(p:A {id: $id}) return c,r,p")
    List<A> getParents(@Param("id") String id);
}

Если я изменю запрос на:

class Repository { // simplified repository class
    @Query("MATCH(c:A)-[r:PARENT]->(p:A {id: $id}) return c")
    List<A> getParents(@Param("id") String id);
}

, он действительно возвращает только дочерние узлы, но я получаю значение NULL, если я сделаю что-то вроде a.getParent ().

Можно ли использовать запрос для получения всех детей с вложенным родителем?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...