Neo4J OGM映射自定义对象

Neo4J OGM映射自定义对象,neo4j,spring-data-neo4j,neo4j-ogm,Neo4j,Spring Data Neo4j,Neo4j Ogm,这是我的密码: MATCH (i1:Identity)-[ie1:IS_LINKED_TO]->(e1:Event)-[ee1:HAS_FLIGHT]->(f:Flight)<-[ee2:HAS_FLIGHT]- (e2:Event)<-[ie2:IS_LINKED_TO]-(i2:Identity) WHERE i1.identityId >= i2.identityId WITH i1, i2, collect({ e1:e1, e2:

这是我的密码:

    MATCH (i1:Identity)-[ie1:IS_LINKED_TO]->(e1:Event)-[ee1:HAS_FLIGHT]->(f:Flight)<-[ee2:HAS_FLIGHT]-
(e2:Event)<-[ie2:IS_LINKED_TO]-(i2:Identity) 
    WHERE i1.identityId >= i2.identityId
    WITH i1, i2, collect({ e1:e1, e2:e2, ee1:ee1,f:f,ee2:ee2}) AS x
    WHERE size (x) > 2
    WITH i1, i2, x
    RETURN i1,i2,x
MATCH(i1:Identity)-[ie1:IS\u LINKED\u TO]->(e1:Event)-[ee1:HAS\u FLIGHT]->(f:FLIGHT)2
用i1,i2,x
返回i1,i2,x
我正在使用session.query(…)API,并将i1和i2作为第一类域对象(标识)。提取x的最佳方法是什么?它被呈现为带有别名的地图

最后,我想要填写所有内容的整个Identity对象。我看到映射中节点别名(例如:e1)的值是InternalNode类型。将这些节点转换为实际域对象的最佳方式是什么

编辑

我尝试过使用@QueryResult特性,下面是我的结果对象的外观

@QueryResult
public class FlightRelationshipAnalysis {
    private Identity i1;
    private Identity i2;
    private List<Map<String, Object>> x;
}
@QueryResult
公共类航班关系分析{
私人身份i1;
私人身份i2;
私人名单x;
}

贴图的值是一个内部节点(对于节点)。不确定这是否是建模@QueryResult的正确方法。

我有一个类似的方法。我想知道为什么它没有被OGM映射。您可以尝试直接返回边和节点,而无需列表。也许这会有帮助。另外,在我的理解中,
size(x)>2
应该一直满足吗?match子句意味着当计算第一个
WITH
时,整个路径都存在。据我所知,只有
可选匹配才会允许空值。我有一个类似的。我想知道为什么它没有被OGM映射。您可以尝试直接返回边和节点,而无需列表。也许这会有帮助。另外,在我的理解中,
size(x)>2
应该一直满足吗?match子句意味着当计算第一个
WITH
时,整个路径都存在。据我所知,只有
可选匹配
才允许空值。