如果我有这样一门课:
@Entity
public class Node {
@OneToOne
@JoinColumn(name = "PARENT_NODE_ID")
private Node parent;
}
获取节点的所有父层次结构的最简单/最优雅的方法是什么?
类似于:List
如果可能的话,我认为你应该用另一种方式来建模:
@Entity
public class Node {
@OneToMany
private List<Node> children = new ArrayList();
}
这样,您将不需要额外的预处理,您将能够调用parent.get孩子()
这样试试
@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()
时,您可以选择具有其父节点的节点,以及它们的父节点...
问题内容: 我有一个带有分层数据的表,其结构如下所示: 如果我传递节点ID,则希望通过在SQL中遍历其所有父节点来获得最高的节点ID /细节。 我尝试过CTE,但我无法以某种方式获得正确的组合。但是,我将此功能用作函数,但是它太慢了,以至于我不得不发布这个问题。 在上面的示例中,如果我通过6,则我想拥有最高的即1。通过遍历6 => 5 => 3 => 2 => [1](结果) 在此先感谢您的帮助。
我有一个绑定到MVVM可观察集合的TreeView。我的项目模板由图像和文本块组成,如以下代码所示: 当然,发生这种情况是因为堆栈面板现在位于选择区域上方。 有什么解决办法吗?
问题内容: 我有课: 然后创建对象: 尝试获取所有字段后,我打电话 但是我只有一个数组 如何从所有类的所有字段包括扩展? 问题答案: 请尝试以下操作:
问题内容: 我正在尝试查找指定目录下的所有文件和文件夹 例如我有/ home / user / stuff 我想回来 希望这是有道理的! 问题答案:
问题内容: 我想知道如何检索实例的父结构。 我不知道如何实现这一目标。 例如: 干杯 问题答案: 您应该保留一个指向引擎盖的指针。 当你增加房子 那么您可以轻松更改,尽管此时可能不需要吸气剂。
问题内容: 假设您有下表: …这是一个自引用表-指。 您将使用什么SQL查询来选择表中的所有项目以及它们的深度,其中项目的深度是该项目的所有父项和祖父母的总和。 该表的内容是否如下: …查询应检索以下对象集: {“ item_id”:1,“ depth”:0} {“ item_id”:2,“ depth”:0} {“ item_id”:3,“ depth”:1} {“ item_id”:4,“ d