Neo4j OGM&多个类似的类

时间:2017-11-16 16:05:46

标签: java spring spring-data-neo4j

我正在使用Neo4j ogm将许多(超过20个)类似的类映射到neo4j db中,这些类只是不同的 关系名称,名称和方向。 每个类只使用一个相同的方法实现“分类”接口 在每个类中(包括将关系添加到节点集合中)

示例节点:

@NodeEntity
public class ExampleClass implements Classification {
    @GraphId
    private Long id;
    private String name;

    @Relationship(type = "EXAMPLE_1", direction = "OUTGOING")
    private Set<Species> classification = new HashSet<>();


    public ExampleClass (){}
    public ExampleClass (String name) {
        this.name = name;
    }

    public Set<Species> getClassification(){
        return classification;
    }
    @Override
    public void specifiedAs(Species species){
        classification.add(species);
    }

类似地:

@NodeEntity
public class ExampleClass2 implements Classification {
    @GraphId
    private Long id;

    private String name;

    @Relationship(type = "EXAMPLE_2", direction = "OUTGOING")
    private Set<Species> classification = new HashSet<>();

    public ExampleClass2 (){}
    public ExampleClass2 (String name) {
        this.name = name;
    }

    public Set<Species> getClassification(){
        return classification;
    }
    @Override
    public void specifiedAs(Species species){
        classification.add(species);
    }
}

我正在寻找减少那些类似课程数量的可能性 并创建...也许是一个通用类,我也可以在其中定义标签,属性名称和实际类型。 我更喜欢使用spring-data和Neo4j OGM。

1 个答案:

答案 0 :(得分:1)

您可以通过引入包含所有常用属性的超类来改进这一点,并且只需在ExampleClassXXX类中具有特定关系。

请注意,关系类型不能是动态的,因此您不能只拥有泛型类。