Spring Data Neo4j (SDN):嵌套对象未由密码填充

Spring Data Neo4j (SDN): Nested objects not populated by cypher

我是图数据库新手,需求是从neo4j 1.9.1迁移到最新的。我已成功将其配置为使用最新版本,但在检索嵌套 objects/collections.

时遇到一些困难

在现有的实现中,属性有 @Fetch 注释,但它不再可用。

当我查询数据库时,它 returns 正确数量的节点,但这些节点不包含嵌套的 object/relationships。

例如,我的 POJO 看起来像这样:

@NodeEntity
public class Category {

@GraphId
Long id;
private String categoryId;
@Index
private String unitId;

@Index
private String companyCategoryCode;
private String companyLabel;
private String supplierId;

@Relationship(type = "CHILD_OF", direction = Relationship.OUTGOING)
private Category parent;
... getters and setters
}

存储库如下所示:

public interface CategoryRepository extends GraphRepository<Category> {
  @Query(
  "MATCH (:ContentViewGroup {token:{token},active:true})-[:ASSOCIATED]-
  (:ContentView {active:true})-[r:MAPS_WITH]-(category:Category) "
      + "WHERE r.count > 0  "
      + "RETURN category ")
  List<Category> getCategories(@Param("token") String cvGroupToken);
}

我总是在 Category class 的 parent 对象中得到 null

在这方面有什么帮助吗?

注意:我正在使用 Neo4j-ogm-api v2.1.6 和 Spring 数据 neo4j v4.2.10-RELEASE

您还必须 return 密码查询中的父类别。

例如: MATCH (:ContentViewGroup {token:{token},active:true})-[:ASSOCIATED]-(:ContentView {active:true})-[r:MAPS_WITH]-(category:Category)-[:CHILD_OF]->(parent:Category) WHERE r.count > 0 RETURN category, parent

SDN/OGM 只能为从 Neo4j 接收的数据创建对象。