2015-04-21 43 views
3

在Neo4J我有一个@NodeEntity Person如何在Spring Data Neo4J 3.0.0(Release)中为节点添加第二个标签?

我希望能够还增加额外的标签,如:USER:CUSTOMER:OWNER:AGENT

看来spring-data-neo4j:3.0.0-RELEASE有一个@Labels注解支持,但我得到一个NullPointerException尝试时使用它。

@NodeEntity 
public class Person { 

    @GraphId 
    Long id 

    @Indexed(unique=true) 
    String email 

    @Labels // <- Seems this is unsupported. 
    private Collection<String>labels 

    public void addLabel(String label) { 
     this.labels.add(label) // <- NullPointer thrown here. 
    } 
} 

我认为这是因为它还不被支持。如果确实如此,那么有人会举例说明如何通过更新后面的存储库来实现相同的结果,添加一个手册@Query注释以添加标签?

我不知道如何:

  1. 参考查询当前节点。
  2. 调用save()方法并创建节点后执行密码。
+0

还有一个问题尚未解决。 [见](https://jira.spring.io/browse/DATAGRAPH-541) – troig

回答

2

如果您将域对象重新编码为支持继承,SDN将根据继承树派生其他标签。

如果您想要多个标签,请扩展父类,您将获得所需的标签。

例如,如果

@NodeEntity 
public class User extends Customer { 

} 

会生成两个标签:用户和:客户。

请参阅Use @NodeEntity on interface/abstract class关于在Neo4j中使用抽象类。

相关问题