gpt4 book ai didi

java - Neo4j OGM 和多个类似的类

转载 作者:行者123 更新时间:2023-12-02 12:00:03 24 4
gpt4 key购买 nike

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

示例节点:

@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。

最佳答案

您可以通过引入一个包含所有公共(public)属性的父类(super class)来改进这一点,并且只在您的 ExampleClassXXX 类中具有特定的关系。

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

关于java - Neo4j OGM 和多个类似的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47334189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com