促销活动
CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
目标地图
课程
级别 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.