通过collection集合(包含association标签)来解决一对多的映射关系
通过collection集合来解决一对多的映射关系
一对多:一个部门对应多个员工
多对一:多个员工对应一个部门
一对多的解决方法:
在部门(少的)的实体类中设置一个员工集合属性(多的)
private List emps;
public List getEmps() {
return emps;
}
?
public void setEmps(List emps) {
this.emps = emps;
}
连表查询时:
连表查询的时候,会查询到多条emp的具体记录,但是无法与dept实体类中的集合属性进行映射,所以使用的resultMap中的collection标签,来将集合中的emp实体类的属性与查询到的emp记录的字段名建立映射关系
分步查询时:
第一步:
查询指定dept记录,此时emp集合与没有映射关系,所以使用resultMap来进行分步查询,为emp集合赋值
第二步:
dept中其余属性与字段名建立了映射,根据唯一标识,调用sql,传入外键(或者关联的键)去执行查找,并返回一个emp的集合
column="did" 外键(或者说是两个表相关联的键)