当前位置: 首页 > 知识库问答 >
问题:

Neo4j OGM

陆沈浪
2023-03-14

我使用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);
    }
}

我正在寻找的可能性,以减少这些类似的类的数量,并创建。。。也许有一个泛型类,我可以在其中定义label、property name和realtionship类型。我更喜欢使用spring数据和Neo4j OGM。

共有1个答案

鲁博赡
2023-03-14

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

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

 类似资料:

相关问答

相关文章

相关阅读