2017-11-16 2 views
0

私はneo4j ogmを使用して、多くの(20以上の)類似クラスをneo4j dbにマップします。これらのクラスは、ちょうど の関係名、名前、方向で異なります。Neo4j OGM&複数の類似クラス

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

私はこれらの同様のクラスの数を減らす可能性を探しています と私はラベル、プロパティ名とrを定義することができます多分1つの汎用クラスEaltionshipタイプもあります。 私はまだspring-dataとNeo4j OGMを使いたいと思っています。

答えて

1

すべての共通プロパティを含むスーパークラスを導入し、ExampleClassXXXクラスの特定の関係を持つだけで、これを改善できます。

リレーションシップタイプは動的にすることはできないため、汎用クラスだけを持つことはできません。

関連する問題