AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
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.