多表之间的关系和操作多表的操作步骤

表关系

  • 一对多
  • 一对多      >>  一:主表     多:从表
  • 多对多     >>  中间表中最少应该由两个字段组成,这两个字段作为外键指向两张表的主键,又组成了联合主键

 分析步骤

  1. 明确表关系
  2. 确定表关系( 描述: 外键  |  中间表 )
  3. 编写实体类,在实体类中描述表关系(包含关系)
  4. 配置映射关系

完成多表操作

一对多操作 案例:客户和联系人(一对多关系) 

    >> 客户:一家公司     联系人:这家公司的员工

 一个客户可以具有多个联系人,一个联系人从属于一家公司

分析步骤

  1. 明确表关系  >> 一对多关系

  2. 确定表关系,再从表上添加外键(描述: 外键 I 中间表)

  • 主表:客户表   
  • 从表:联系人表

  3. 编写实体类,在实体类中描述表关系(包含关系)

  • 客户:在客户的实体类中包含一个联系人的集合
  • 联系人:在联系人的实体类中包含一个客户的对象

  4. 配置映射关系
  使用JPA注解配置一对多映射关系

 

操作步骤

1.引入依赖坐标,导入实体类和xml文件

2.  Customer   >> 配置客户和联系人之间的一对多关系

复制代码
1   @OneToMany(targetEntity = LinkMan.class) //对方实体类的字节码对象 2   @JoinColumn(name = "lkm_cust_id",referencedColumnName = "cust_id") //name:外键的名称   referencedColumnName: 外键的取值来源 3   private Set<LinkMan> linkMans = new HashSet<LinkMan>();
复制代码

 

  LinkMan   >> 配置客户和联系人之间的一对多关系

1   @ManyToOne(targetEntity = Customer.class) 2   @JoinColumn(name = "lkm_cust_id",referencedColumnName = "cust_id") 3   private Customer customer;

配置外键的过程中,配置到多的一方,就会在多的一方维护外键

 

3. 保存一个客户,保存一个联系人

复制代码
 1 @RunWith(SpringJUnit4ClassRunner.class)  2 @ContextConfiguration(locations = "cl