@Query("MATCH (m:Movie)<-[r:ACTED_IN]-(a:Person) RETURN m,r,a LIMIT {limit}")
Collection<Movie> graph(@Param("limit") int limit);
对于这个查询,它返回&#34; RETURN m,r,a&#34;,这是一个包含3个元素的完整子图。那么为什么&#39;图表的返回值为&#39;方法是&#34;电影&#34;的集合。只要? &#39; r,a&#39;也返回了。
我正在努力了解幕后的机制。
答案 0 :(得分:0)
您的类路径中似乎已定义@RelationshipEntity
但在域类中定义@Relationship
时不使用它。
样品:
@NodeEntity
class Pet {
// ...
}
@NodeEntity
class Person {
@Relationship(type = "HAS")
private List<Pet> pets;
// ...
}
@RelationshipEntity(type = "HAS")
class HasRelationship {
// ...
}
如果Neo4j OGM在SDN的幕后发现关系类型,它首先查找@RelationshipEntity
,如果找到它们,则尝试将返回的类型映射回@NodeEntity
。在这种情况下,OGM会找到HasRelationship
,并希望将其映射到Person
类。这会失败,因为Person
只知道Pet
并且对象被丢弃。
就像我的回答on GitHub。