首页 > 解决方案 > 获取整个父层次结构

问题描述

如果我有这样的课程:

@Entity
public class Node {
    @OneToOne
    @JoinColumn(name = "PARENT_NODE_ID")
    private Node parent;
}

获取节点的所有父层次结构的最简单/最优雅的方法是什么?

就像是:List<Node> getTheWholeParentHierarchy(Node node);

标签: spring-bootjpaspring-data-jpa

解决方案


试试这个方法

@Entity
public class Node {
   @Id
   @Column(name = "node_id")
   private long nodeId;

   @ManyToOne(cascade = { CascadeType.ALL })
   @JoinColumn(name = "parent_id")
   @JsonIgnore
   private Node parent;

   @OneToMany(mappedBy = "parent")
   @JsonIgnore
   private Set<Node> subordinates = new HashSet<>();
}

当您nodeRepository.findById()可以选择具有父级的节点时,以及它们的父级...


推荐阅读