我有一个分层数据结构如下其中节点映射到父节点如下:
@Entity
public class Node implements Serializable {
@Id
private long id;
@Column(name="PARENT_ID")
private Long parentId;
@OneToMany
@JoinColumn(name="PARENT_ID")
public List<Node> children = new LinkedList<Node>();
}
例如,假设我有以下数据:
[A]
/ \
/ \
/ \
[B] [C]
/ \ \
/ \ \
[D] [E] [F]
\
\
[G]
现在我想在 JPA CriteriaBuilder 中构建一个动态查询,它可以查询任何节点并返回其子节点的结果。例如,如果我查询 B,我会得到以下结果:
- 乙
- D
- 乙
- G
而且,如果我查询 E,我得到:
-E -G
等等...