JPA映射关联关系
- 映射单项多对一的关联关系(常用)
- 映射单项一对多的关联关系
- 映射双向多对一的关联关系
- 映射双向一对一的关联关系
- 映射双向多对多的关联关系
一、单项多对一的关联关系
客户实体:
Customer【一】 中没有 Order【多】订单实体:
Order【多】 中有 Customer【一】“多”中含有外键
测试映射关系:
- 【增】
建议:
保存“多对一时”,先保存“一”,后保存“多”;这样不会有多余的update语句。- 【查】
- 【删】
不能直接删除 “ 多 ” 的一方,因为有外键约束- 【改】
二、单项一对多的关联关系
客户实体:" 一 " 的有外键
订单实体:测试映射关系:
- 【增】
一对多关联关系进行保存时,一定会多出update,因为多的一端不会保存外键列。- 【查】
- 【删】
- 【改】
三、双向多对一的关联关系
双方的外键列名需要一致;
客户实体:订单实体:测试映射关系:
- 【增】
在双向 1 => n 的关联关系,执行保存时:
[1.] 若先保存 n 的一端,在保存 1 的一端,默认情况下会多出 n 条update语句;
[2.] 若先保存 1 的一端,则会多出 x 条update语句
建议:
在进行双向1 => n关联关系是,建议使用 n 的一方来维护关联关系, 这样会有效减少SQL语句。
四、双向一对一的关联关系
经理和部门的关系
经理实体:部门实体:测试代码:
- 【增】
- 【查】
先获取不维护关系的一方,也一样。
五、双向多对多的关联关系
双向多对多必须由一方放弃维护多对多关系,否则中间表会出现主键重复的问题。
商品和类别的关系
类别实体类商品表实体类测试映射代码: -【增】-【查】