SDN4 - 使用接口作为RelationshipEntity的结尾时抛出的MappingException

时间:2015-07-16 15:55:53

标签: neo4j spring-data-neo4j-4

此功能在某一时刻有效但似乎在最新的SDN4快照(7-16-15)中已经破解

我有两个节点类,一个表示中间节点,非叶节点,另一个表示一级叶子顶点节点。这两个类实现了一个通用接口。

public interface Node {
    ...
}

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

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

前者可以与其他中间节点或叶节点相关,我通过将SimpleNode类映射到Node接口来建模这种关系:

@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)

同样,这是在7-16-15快照之前工作所以我的问题是 - 这是不支持的功能?这是一个错误吗?

一个人为的例子存在于: https://github.com/simon-lam/sdn-4-demo

通过./gradlew clean test --debug

重现

1 个答案:

答案 0 :(得分:3)

这是一个错误。我们目前正在研究有关SD-commons和Spring DATA REST集成的内容,这是使用前沿内容的后果之一。

使用RC1可能是目前最好的选择。密切关注这个JIRA问题,看看它何时完成:https://jira.spring.io/browse/DATAGRAPH-564