Hibernate 属于等级的

Hibernate 属于等级的,hibernate,jakarta-ee,jpa,tree,hierarchy,Hibernate,Jakarta Ee,Jpa,Tree,Hierarchy,我有一个JPA实体,表示产品类别树: @Entity @Table(name="gusti") @NamedQueries({ @NamedQuery(name="selectAll", query="select c from Gusto c left join fetch c.children left join fetch c.parent") }) public class Gusto implements Serializable { private static

我有一个JPA实体,表示产品类别树:

@Entity
@Table(name="gusti")
@NamedQueries({ 
    @NamedQuery(name="selectAll", query="select c from Gusto c left join fetch c.children left join fetch c.parent")
})
public class Gusto implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @NotNull
    private String nome;

    @Lob
    private String descrizione;

    @OneToMany(cascade=CascadeType.ALL,fetch=FetchType.EAGER)
    @JoinColumn(name = "parent_id")
    private List<Gusto> children = new LinkedList<Gusto>();

    @ManyToOne(fetch=FetchType.EAGER)
    @JoinColumn(
        name = "parent_id",
        insertable=false,
        updatable=false
    )
    private Gusto parent;

    @OneToMany(
        mappedBy="gusto",
        cascade=CascadeType.ALL,
        fetch=FetchType.LAZY
    )
    private List<Prodotto> prodotti = new ArrayList<Prodotto>();

// ... 
}
让我们假设我的味觉树是这样的:

Fruit
|_ Blackberry
|_ Orange

Vegetable
|_ Potato
我有一些产品的口味是“水果”(母亲的对象)和其他产品下的“橙色”味

我正在建立一个页面,必须显示所有水果的产品。 因此,我必须包括直接在“水果”下的产品和在“橙色”下的产品

“prodotti”列表只包含与该单一味觉直接相关的产品

如何在查询中包含与子Gustos关联的产品

我考虑使用一种方法遍历树并将找到的所有产品添加到返回列表中。有没有一种方法可以通过单个查询或其他技术检索它们

多谢各位

Fruit
|_ Blackberry
|_ Orange

Vegetable
|_ Potato