促銷活動
學習
Adesua ahorow
任務
問卷及小測驗
遊戲
幫助
學習提醒時程表
社群
使用者
論壇
聊天
文章
成功故事
活動
評論
訂閱
亮色主題
課堂
評論
關於我們
開始
開始學習
現在就開始學習
Me Nkɔso
Adesua ahorow
探索地圖
課堂
等級 13
集合映射
SQL & Hibernate
等級 13,
課堂 0
藏品一覽 好了,您已經了解瞭如何映射簡單類型。現在是時候轉向更有趣的問題了——如何映射對象集合。 我們可以將對象分為 5 組: Array - 對像數組 列表- 對象列表 Set - 一組對象 地圖- 對象字典 集合——對象的集合 以及一個帶有集合字段的類的示例: @Entity
@ManyToOne
SQL & Hibernate
等級 13,
課堂 1
2.1 表級鏈接 我們已經看到 Hibernate 如何在輔助表中存儲集合。現在讓我們弄清楚如何組織存儲真實實體類的完整表之間的關係。 Hibernate中實體類之間的關係有四種: 一對一_ _ 一對多_ _ 多對一_ _ 多對多_ _ 我們將從最簡單的選項開始分析——多對一。 您已經遇到過 SQL 中表之間的這種關係。它通常是這樣的: ID 姓名 職業 薪水 年齡 加入日期 1個 伊万諾夫伊万 程序員 100000 25 2012-06-30 2個 彼得羅夫彼得 程序員 8
@一對多
SQL & Hibernate
等級 13,
課堂 2
表級關係 讓我們再看看我們的兩個表: ID 姓名 職業 薪水 年齡 加入日期 1個 伊万諾夫伊万 程序員 100000 25 2012-06-30 2個 彼得羅夫彼得 程序員 80000 23 2013-08-12 3個 伊万諾夫謝爾蓋 測試儀 40000 三十 2014-01-01 4個 拉比諾維奇·莫伊沙 導演 200000 35 2015-05-12 5個 基連科阿納斯塔西婭 辦公室主管 40000 25 2015-10-10 6個 瓦斯卡 貓 1000 3個 2018
@ManyToMany
SQL & Hibernate
等級 13,
課堂 3
服務台 現在讓我們看看另一個常見的情況——多對多。假設我們在任務和員工之間有一個多對多的關係: 員工表中的一名員工可以執行任務表中的多項任務。 任務表中的一項任務可以分配給多個員工。 實體之間的這種關係稱為多對多。並且為了在 SQL 級別實現它,我們需要一個額外的服務表。讓我們稱之為,例如,employee_task。 employee_task 表將只包含兩列: 員工ID 任務編號 每次我們將特定任務分配給特定用戶時,都會向該表中添加一個新行。例子: 員工ID 任務編號 1
@一對一
SQL & Hibernate
等級 13,
課堂 4
5.1 一對一交流的多種形式 兩個 Entity 類之間的關係還有另一個有趣且相當具體的情況 - 一對一關係。 我稱這種情況非常具體,因為它更多地是關於 Java 對象而不是數據庫。在數據庫中,表與表之間的關係只有兩種選擇: 表行包含指向另一個表的 ID 的鏈接。 服務表用於多對多關係。 在實體類的情況下,可能有幾個註釋描述的選項: @嵌入式 單邊OneToOne 雙邊一對一 @MapsId 下面我們將考慮其中最受歡迎的。 5.2 嵌入式 順便說一下,我們已經考慮過最簡單的一
級聯變化
SQL & Hibernate
等級 13,
課堂 5
6.1 深度依賴管理 還有一些關於@OneToMany註解之類的更有用和有趣的東西。它們都有4個常用選項: 級聯= CascadeType.ALL orphanRemoval = 真 fetch = FetchType.LAZY 現在我們將更詳細地分析它們。我們將從最有趣的 - CascadeType開始。如果我們更改主要實體,此參數確定依賴實體應該發生什麼。 JPA規範對該參數有如下取值: 全部 堅持 合併 消除 刷新 分離 但是,Hibernate 將此規範擴展為三個更多
Please enable JavaScript to continue using this application.