多对多

ConcurrentModificationException
courrent:当前的
modify:vt修改 modification n
修改当前集合异常:
便立即和不要删除其中的元素

使用迭代器Iterate 进行遍历 ,删除 可以避免该异常


多对多  所有的多对多都可以转换为 两个一对多

比如在常见的订单管理数据库当中“产品”表和“订单”表之间的关系。单个订单中可以包含多个产品。另一方面,一个产品可能出现在多个订单中。因此,对于“订单”表中的每条记录,都可能与“产品”表中的多条记录对应。此外,对于“产品”表中的每条记录,都可以与“订单”表中的多条记录对应。这种关系称为多对多关系,因为对于任何产品,都可以有多个订单,而对于任何订单,都可以包含许多产品。请注意,为了检测到表之间的现有多对多关系,务必考虑关系的双方。
要表示多对多关系,您必须创建第三个表,该表通常称为联接表,它将多对多关系划分为两个一对多关系。将这两个表的主键都插入到第三个表中。因此,第三个表记录关系的每个匹配项或实例。例如,“订单”表和“产品”表有一种多对多的关系,这种关系是通过与“订单明细”表建立两个一对多关系来定义的。一个订单可以有多个产品,每个产品可以出现在多个订单中

例如:   学生表和老师表的关系    

学生表                学号          姓名               老师表     工号  姓名

                            1              xxoo1          大黑

   2    赵丽颖 2           二黑

                                                     学生-老师表

                               学生学号       老师工号

                           主键  1     1

                                    1    2  

      2     1

    2   1

一个学生可以有多个老师

一个老师也可以有多个学生

例2:

Programer 表 和 Project 表之间 的关系  :

一个程序员可以开发多个项目 

一个项目也是由个多个程序员开发 

程序员表                                           项目表

 工号   姓名                                                  项目编号            项目名

1                              井空1                     快播

2                             泽玛莉亚                                              2                      粉城

                   程序员-项目表

主键                工号            项目编号

    1                       1                1

   2                      1                 2

   3                       2                2

hibernate 不要给自增主键赋值 (忽略主键)

HQL聚合函数求结果,使用uniqueResult

聚合函数 的结果为一行,一行对应一个结果 


// uniqueResult 结果是一行 多行报错
// 但是一行可以有很多列,但返回多列时,使用Object[]

子查询 一般用于where /having 子句中 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值