Neo4j 将不同的关系类型映射到一个集合

Neo4j 将不同的关系类型映射到一个集合,neo4j,spring-data-neo4j,spring-data-graph,Neo4j,Spring Data Neo4j,Spring Data Graph,我正在尝试将本体术语映射到Neo4j数据结构。 准确地说,我有一个术语类和两种类型的关系(是的一部分和的一部分)。 我有以下课程: 学期班: @NodeEntity public class Term { @GraphId private Long nodeId; @Indexed(unique=true) private String id; private String name; private String definition;

我正在尝试将本体术语映射到Neo4j数据结构。
准确地说,我有一个
术语
类和两种类型的关系(
的一部分和
的一部分)。
我有以下课程:

学期班:

@NodeEntity
public class Term {
    @GraphId
    private Long nodeId;
    @Indexed(unique=true)
    private String id;
    private String name;
    private String definition;

    @RelatedToVia(type="is_a",direction=Direction.INCOMING)
    private Set<Term2Term> is_a_children;

    @RelatedToVia(type="is_a",direction=Direction.OUTGOING)
    Set<Term2Term> is_a_parents;

    @RelatedToVia(type="part_of",direction = Direction.INCOMING)
    Set<Term2Term> part_of_children;

    @RelatedToVia(type="part_of",direction = Direction.OUTGOING)
    Set<Term2Term> part_of_parents;
}
映射工作正常,访问特定集合(即is_a_子集合)工作正常。 然而,我有一个用例,我必须用数据填充
NavigationTree
。它应该是这样的:

-Term 1 
  - Term 1.1 (is_a)
     -Term 1.1.1 (part_of)
  - Term 1.2 (part_of)
  - Term 1.3 (is_a)
     - Term 1.3.1 (part_of)
     - Term 1.3.2. (is_a)
....
导航树
没有不同关系类型的概念

我需要将不同的关系集合(即is_a_children和part_of_children)组合到一个集合中,并且仍然保留有关关系类型的信息(以便显示)

当然,我可以创建一个getter来处理两个集合的
set.union
(番石榴),但是这样我就丢失了关于关系类型的信息。 唯一非黑客的方法是在图形数据库中使用一种泛型关系类型,而不是两种关系类型(is_a,part_of),并将该类型作为属性添加到关系中

还有别的办法吗

更新1: 看来我必须用继承来解决这个问题

-Term 1 
  - Term 1.1 (is_a)
     -Term 1.1.1 (part_of)
  - Term 1.2 (part_of)
  - Term 1.3 (is_a)
     - Term 1.3.1 (part_of)
     - Term 1.3.2. (is_a)
....