3

この機能は、ある時点では機能していましたが、最新の SDN4 スナップショット (7-16-15) では壊れているようです。

2 つのノード クラスがあります。1 つは中間の非リーフ ノードを表し、もう 1 つは次数 1 のリーフ頂点ノードを表します。2 つのクラスは、共通のインターフェイスを実装します。

public interface Node {
    ...
}

@NodeEntity
public class SimpleNode implements Node {
    ...
}

@NodeEntity
public class SimpleLeafNode implements Node {
    ...
}

前者は他の中間ノードまたはリーフ ノードに関連付けることができ、SimpleNodeクラスをNodeINTERFACEにマッピングすることでこの関係をモデル化しました。

@RelationshipEntity
public class SimpleRelationship {

    @StartNode
    private SimpleNode parent;

    @EndNode
    private Node child;
}

Spring Boot アプリケーションを起動しようとすると、SDN マッピング例外が発生します。

Caused by:
    10:51:04.173 [DEBUG] org.neo4j.ogm.metadata.MappingException: No identity field found for class: com.sdn4demo.entity.Node
    10:51:04.174 [DEBUG]    at org.neo4j.ogm.metadata.info.ClassInfo.identityField(ClassInfo.java:291)
    10:51:04.174 [DEBUG]    at org.springframework.data.neo4j.mapping.Neo4jPersistentProperty.<init>(Neo4jPersistentProperty.java:76)
    10:51:04.174 [DEBUG]    at org.springframework.data.neo4j.mapping.Neo4jMappingContext.createPersistentProperty(Neo4jMappingContext.java:100)

繰り返しますが、これは 2015 年 7 月 16 日のスナップショットの前に機能していたので、私の質問は - これはサポートされていない機能ですか? これはバグですか?

不自然な例が https://github.com/simon-lam/sdn-4-demoにあります。

することで再現可能./gradlew clean test --debug

4

1 に答える 1