3

Java アプリケーションでスプリング データを使用して、neo4j を操作しようとしています。現在、私は奇妙な問題に直面しています。次にシナリオです。

I have:
1. Two UserNode, say A and B, where "UserNode" is java @NodeEntity class. 
2. A @RelationshipEntity "RequestedTo" which i again a java class. 
3. A relationship "A RequestedTo B" which i 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 」プロパティが表示されます。

4

3 に答える 3

1

私はNeo4jで少し遊んだだけですが、代わりにこれを試してください:

START user=node:searchByMemberID(memberID={0}) , member=node(*)
MATCH user<-[r:RequestedTo]-member 
WHERE id(member) <> 0 
RETURN member
于 2013-06-06T07:01:55.980 に答える
0

OPと同じエラーが発生しました:

'__type__' property not found for NodeImpl#0

キーワード__type__を使用してプロパティの存在を確認することで解決しました。has

より明示的には、このリクエストはエラーを発生させます:

@Query(value = "start n=node(*) where not (n)-[:hasParent]->() return n")
Set<MyNodeType> findRootNodes();

しかし、このリクエストは機能します:

@Query(value = "start n=node(*) where has(n.__type__) and not (n)-[:hasParent]->() return n")
Set<MyNodeType> findRootNodes();

これが誰かを助けることを願っています。

于 2013-12-19T08:57:09.437 に答える