」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 Spring 在 Hibernate 4 中定義與註解的關係?

如何使用 Spring 在 Hibernate 4 中定義與註解的關係?

發佈於2024-11-17
瀏覽:881

How to Define Relationships with Annotations in Hibernate 4 using Spring?

使用Spring 在Hibernate 4 中使用註解定義關係

要在Hibernate 4 中為提供的類別Foo 使用註解實現各種類型的關係和Bar,讓我們深入研究一下具體情況。

一對多單向關係:

使用@OneToMany註解和List屬性。保持 Bar 類別不變。這建立了一對多關係,其中 Foo 可以有多個關聯的 Bar 對象,但 Bar 不能引用回 Foo。

雙向一對多關係(由 Foo.class 管理) ):

在 Foo.class 上使用 @OneToOne 註釋,cascade = CascadeType.ALL。新增 @JoinColumn 註釋,指定 Bar.class 上套用於連接的列。對於Bar.class,使用@OneToOne註解並指定mappedBy =「bar」來指示該關係由Foo.class管理。

使用User-的一對多單向關聯式託管連接表:

使用 @OneToMany 註解和 @JoinTable 註解來指定單獨的聯接表。兩側使用 @JoinColumn 註解定義連接列。如有必要,請使用附加類別來表示連接表。

使用外鍵映射的雙向一對多關係:

On Foo.class,使用 @OneToMany(mappedBy = "bar") 來映射關係。在 Bar.class 上,使用 @ManyToOne(cascade = { CascadeTyep.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }) 和 @JoinColumn 註解。

使用Hibernate 進行雙向多對多-託管連接表:

在Foo.class 和Bar.class 上使用@ManyToMany,並為連接表使用@JoinTable註釋,指定連接列。

使用使用者管理的聯接表物件的雙向多對多:

與單向一對多範例類似,使用 @JoinTable 註解的 @OneToMany。建立一個單獨的類別來表示聯接表,並使用 @ManyToOne 將關係對應到 Foo.class 和 Bar.class。

確定獲取類型:

使用 fetchType .LAZY 延遲相關集合的加載,直到它們被訪問為止。使用 fetchType.EAGER 立即載入集合,但請注意,它可能會影響效能。考慮在 Service 類別中使用 Hibernate.initialize() 來手動初始化特定用例的延遲載入集合。

決定級聯方向:

使用 @Cascade 註解指定級聯選項。一般來說,級聯會改變所有權關係的方向。如果在應用程式上下文中沒有意義,請避免從子級到父級的級聯更新或刪除。

孤兒刪除:

在@OneToMany 註釋讓Hibernate 在從父物件的集合中刪除孤立物件(即那些不與任何其他父物件關聯的物件)時自動刪除它們。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3