簡體   English   中英

多對一映射 Hibernate

[英]Many to one mapping Hibernate

我在 hibernate 中進行多對一映射。 我正在使用我之前為一對多映射(客戶和訂單)創建的現有表,但是當我嘗試 map 並更新那些我無法更新的表時,我不知道應該如何處理? 我想插入數據,這意味着我想使用命令行運行器為該客戶創建更多訂單。

你能幫我解決這個問題嗎

感謝你的幫助。

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

在此處輸入圖像描述

映射一對多和多對一關聯

這兩個關聯分別是從欠實體和從屬實體的角度看的相同關聯。

    Student     one-to-many     Address
    Address     many-to-one     Student

@OneToMany 注釋可以應用於表示關聯的映射“多”端的集合或數組的“一個”端實體 class 的字段或屬性值。

@ManyToONe 兩個實體之間的關系是通過管理“一個”端實體的 FK(外鍵)作為“多”實體表中的一列。


> **Bidirectional one-to-many using ```@JoinColumn```**

@Entity
public class Student{
    @OneToMany(cascade = CasecadeType.ALL)
    @JoinTable(name="Student_FK")
    public set<Address> getAddress(){
       return address;
}
}

一對多的一方作為欠方,您必須刪除 mappedBy 元素並將@ManyToOne @JoinColumn設置為可插入且可更新為false。 此解決方案未優化,會產生一些額外的UPDATE Statement

@Entity
public class Address{
    @ManyToOne(cascade = CasecadeType.ALL)
    @JoinColumn(name="STUDENT_FK", insertable = false, updatable = false)
    public Student student;
}

有關更多詳細信息,請查看此鏈接Link

暫無
暫無

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

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