JPA基础知识(四):映射关联关系

JPA映射关联关系

  1. 映射单项多对一的关联关系(常用)
  2. 映射单项一对多的关联关系
  3. 映射双向多对一的关联关系
  4. 映射双向一对一的关联关系
  5. 映射双向多对多的关联关系

一、单项多对一的关联关系

客户实体:
客户实体类及数据库表
Customer【一】 中没有 Order【多】

订单实体:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Order【多】 中有 Customer【一】
“多” 中含有外键

测试映射关系:

  • 【增】
    在这里插入图片描述
    建议:
    保存“多对一时”,先保存“一”,后保存“多”;这样不会有多余的update语句。
  • 【查】
    在这里插入图片描述
  • 【删】
    删 “ 多 ” 的一方
    不能直接删除 “ 多 ” 的一方,因为有外键约束
  • 【改】
    在这里插入图片描述

二、单项一对多的关联关系

客户实体:
客户实体类及数据库表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
" 一 " 的有外键

订单实体:
在这里插入图片描述

测试映射关系:

  • 【增】
    在这里插入图片描述
    一对多关联关系进行保存时,一定会多出update,因为多的一端不会保存外键列。
  • 【查】
    在这里插入图片描述
  • 【删】
    在这里插入图片描述
  • 【改】
    在这里插入图片描述

三、双向多对一的关联关系

双方的外键列名需要一致;

客户实体:
客户实体类及数据库表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

订单实体:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

测试映射关系:

  • 【增】
    在这里插入图片描述
    在双向 1 => n 的关联关系,执行保存时:
    [1.] 若先保存 n 的一端,在保存 1 的一端,默认情况下会多出 n 条update语句;
    [2.] 若先保存 1 的一端,则会多出 x 条update语句
    建议:
    在进行双向1 => n关联关系是,建议使用 n 的一方来维护关联关系, 这样会有效减少SQL语句。

四、双向一对一的关联关系

经理和部门的关系

经理实体:
在这里插入图片描述
在这里插入图片描述

部门实体:
在这里插入图片描述
在这里插入图片描述

测试代码:

  • 【增】
    在这里插入图片描述
  • 【查】
    在这里插入图片描述
    先获取不维护关系的一方,也一样。

五、双向多对多的关联关系

双向多对多必须由一方放弃维护多对多关系,否则中间表会出现主键重复的问题。
商品和类别的关系

类别实体类
在这里插入图片描述

商品表实体类
在这里插入图片描述
在这里插入图片描述

测试映射代码:
-【增】
在这里插入图片描述
-【查】
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Xxacker/article/details/84893462