2017-11-16 6 views
0

나는 많은 (20 개가 넘는) 유사한 클래스를 관계 이름, 이름 및 방향과 다른 neo4j db로 매핑하는 데 Neo4j ogm을 사용하고 있습니다.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을 정의 할 수있는 일반적인 클래스 또한 Ealtionship 유형. 스프링 데이터와 Neo4j OGM을 여전히 선호합니다.

답변

1

모든 공통 속성을 포함하는 수퍼 클래스를 도입하고이 클래스를 특정 클래스로 설정하여이를 향상시킬 수 있습니다. ExampleClassXXX

관계 유형은 동적 일 수 없으므로 제네릭 클래스만으로는 될 수 없습니다.