代码之家  ›  专栏  ›  技术社区  ›  Steffen Harbich

通过Neo4j-OGM映射任意关系

  •  0
  • Steffen Harbich  · 技术社区  · 6 年前

    Neo4j OGM支持通过 @Convert 和 CompositeAttributeConverter @NodeEntity ?

    我的数据模型中使用的实际属性和关系是可配置的,即它们在编译时是未知的。示例:Configuration指定标签A和B的节点,以及从A到B的名为REL_1的关系。现在,当我查询标签A的节点时,我希望检索并映射相应的结果节点实体中的关系。

    我试图根据配置构建cypher查询,但我一直在检索其结束节点应该由OGM映射的关系。下面是我的简化生成查询结构:

    MATCH (n:A) RETURN n, [(n)-[rn:REL_1]-(n2) | [rn, n2]]
    

    我也试过了

    MATCH (n:A) RETURN n, [[(n)-[rn:REL_1]-(n2) | [rn, n2]]]
    

    与OGM在调用时生成的模式相同 session.load 使用固定的数据模型。但是,这两个查询都不映射 n2 结果是 session.query 打电话来。而是返回的类型 NodeModel 但我不想自己绘制地图,因为OGM已经有能力做到这一点。 我的问题是什么?还是虫子?

    MATCH (n:A) RETURN n, [(n)-[rn:REL_1]-() | rn], [(n)-[:REL_1]-(n2) | n2]
    

    我使用的是Neo4J 3.5,通过Sprint Boot 2.2.2包含OGM 3.2.3。

    0 回复  |  直到 6 年前
        1
  •  1
  •   cybersam    6 年前

    这可能是由于 pattern comprehension 实施。

    MATCH (n:A)-[rn:REL_1]-(n2) RETURN n, COLLECT({rn: rn, n2: n2})