Всегда загружать определенный дочерний объект в neo4j
class Node {
Long id;
String name;
@Relationship(type="NodeToCategory")
Address address;
List<NodeB> nodeBList;
}
//node B CLass
class NodeB {
Long id;
String someOther;
@Relationship(type="NodeToCategory")
Address address;
List<NodeC> nodeCList;
}
class Address {
Long id;
String name;
}
Когда я запускаю запрос с глубиной 2 на Node
это возвращается nodeBList
но он не возвращает адреса NodeB. Я хочу убедиться, что всякий раз, когда есть объект адреса, он всегда будет возвращать адрес независимо от глубины. Не должен возвращать адреса NodeB
как Null
,
Один из способов сделать это - загрузить все адреса до и затем попытаться загрузить Node
, Я пытаюсь избежать этого. Есть ли способ сделать это с помощью каких-либо аннотаций или других функций, о которых я не знаю в neo4jOGM?
1 ответ
Вы можете добиться этого с помощью @Query
а также pattern
в вашем cypher
, Это также вернет NodeB
с address
для тех с одним адресом и нулевым адресом для тех без address
,
@Query("MATCH (na: Node) " +
"WHERE na.name={0} " +
"WITH na " +
"MATCH p=(na)-[*0..2]->(n) " +
"RETURN p")
public Node getNode(String name);