如何使用enum RelationshipType和Neo4j?

bio*_*ics 3 java neo4j spring-data-neo4j

我想在某个类型节点之间定义一些关系类型.当我查看示例时,他们总是使用String来定义关系类型,如本例所示.通过使用:

@RelationshipEntity(type = "ACTED_IN")
Run Code Online (Sandbox Code Playgroud)

我试图使用org.neo4j.graphdb.RelationshipType但是RelationshipEntity.type期望一个字符串.

public enum PersonMovieRelationshipType implements RelationshipType {
    ACTED_IN("ACTED_IN"),
    AUTHOR("AUTHOR");

    private String type;

    PersonMovieRelationshipType( String type ){
        this.type = type;
    }

    public String getType() {
        return type;
    }
}
Run Code Online (Sandbox Code Playgroud)

RelationshipType枚举提供了一个方法"name()"如何处理?

我不喜欢自由文本的方式,是否可以使用枚举?

任何完整的例子将不胜感激.

问候

Sle*_*idi 5

你不能因为注释的工作方式.你可以做的是将关系名称声明为常量.

interface RelationNames{
  String ACTED_IN = "ACTED_IN";
}
Run Code Online (Sandbox Code Playgroud)

然后在代码中使用这些常量

@RelationshipEntity(type = RelationNames.ACTED_IN)
Run Code Online (Sandbox Code Playgroud)