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

时间:2018-02-28 12:43:35

标签: java neo4j cypher spring-data-neo4j

我是图形数据库的新手,需要从neo4j 1.9.1迁移到最新版本。我已成功将其配置为使用最新的但在检索嵌套对象/集合时遇到一些困难。

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

当我查询数据库时,它返回正确数量的节点,但这些节点不包含嵌套对象/关系。

例如,我的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);
}

我总是在null课程的parent对象中获得Category

在这方面有任何帮助吗?

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

1 个答案:

答案 0 :(得分:2)

您还必须在密码查询中返回父类别。

例如: 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收到的数据创建对象。