我正在使用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。
发布于 2017-11-17 09:23:22
您可以通过引入一个包含所有公共属性的超类来改进这一点,并且只在您的ExampleClassXXX
类中具有特定的关系。
请注意,关系类型不能是动态的,因此您不能只有一个泛型类本身。
https://stackoverflow.com/questions/47334189
复制相似问题