我正在尝试在java应用程序中使用spring数据来玩neo4j。现在我遇到了一个奇怪的问题。下面是场景。
I have:
1. Two UserNode, say A and B, where "UserNode" is java @NodeEntity class.
2. A @RelationshipEntity "RequestedTo" which is again a java class.
3. A relationship "A RequestedTo B" which is directed towards B.
现在,当我尝试获取所有具有指向B的RequestedTo关系的UserNode时,会出现以下异常
Caused by: org.neo4j.graphdb.NotFoundException: '__type__' property not found for NodeImpl#0.
at org.neo4j.kernel.impl.core.Primitive.newPropertyNotFoundException(Primitive.java:184)
at org.neo4j.kernel.impl.core.Primitive.getProperty(Primitive.java:179)
at org.neo4j.kernel.impl.core.NodeImpl.getProperty(NodeImpl.java:52)
at org.neo4j.kernel.impl.core.NodeProxy.getProperty(NodeProxy.java:155)
at org.springframework.data.neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.readAliasFrom(AbstractIndexingTypeRepresentationStrategy.java:106)
在这里,我使用Spring中提供的GraphRepository接口对neo4j进行以下查询。
START user=node:searchByMemberID(memberID={0}) , member=node(*), root = node(0) MATCH user<-[r:RequestedTo]-member WHERE member <> root RETURN member
同样,当我在neoclipse中启动这个查询时,我可以看到结果中UserNode上没有“type”属性。但是当我在neo4j浏览器控制台中尝试这个查询时,我可以看到结果集中出现了“type”属性。
3条答案
按热度按时间laik7k3q1#
我刚刚玩了一点Neo4j,但请尝试以下操作:
o7jaxewo2#
你不需要在
start
中指定member
,cypher会自己处理这个问题。毕竟,从一个或几个起点进行的所有本地查询就是图数据库的作用:zdwk9cvp3#
我与OP出现了相同的错误:
并通过使用
has
关键字检查__type__
属性是否存在来解决该问题。更明确地说,这个要求会引发错误:
但这个请求是有效的:
希望这能对某人有所帮助。