簡體   English   中英

Hibernate的簡單對象層次結構

[英]Simple object hierarchy with Hibernate

如何使層級映射休眠?

例如:類別

id parent_id name
1  0         Root
2  1         Sub-root 1
3  1         Sub-root 2
4  2         Sub-(sub-root 1)

是否可以為此類Category對象進行延遲映射?

目前還不清楚您要問什么。

但是,似乎您正在談論的是自引用關系而不是繼承,因此可以按以下方式進行映射。 默認的獲取策略應與其他@OneToMany相同,即LAZY。

@Entity
public class Category{

    @Id
    private Long id;

    @ManyToOne
    @JoinColumn(name = "parent_id")
    private Category parent;

    @OneToMany(mappedBy = "parent")
    private Set<Category> subCategories;
}

我相信您想詢問有關實體繼承的問題。 我建議使用JPA繼承策略。 有3個可用。

  1. 單個表 :僅使用一個數據庫表。 列需要為空,因此浪費數據庫空間
  2. 聯接策略 :使用多個表可以聯接以插入和檢索實體數據。 節省數據庫空間,但是當繼承層次結構變得越來越深時,性能成為一個問題
  3. 每個具體類的表 :使用未連接的單獨數據庫表。

不同的策略有不同的優點和缺點。 您可以根據需要選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM