AI Academy
促銷
CodeGym University
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
Java
SQL & Hibernate
等級 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.