mybatis 一对多查询
一、实体类
//一个部门对应多个员工
public class Dept {
private Integer deptid;
private String dname;
private String dloc;
private Set<Emp> emps= new HashSet<>();
}
public class Emp {
private Integer empid;
private String ename;
private String esex;
private Date ehiredate;
private Double esal;
private Dept dept;
}
二、接口方法
public interface DeptMapper {
@Select("select * from dept ")
@Results({@Result(property = "deptid" ,column = "deptid"),
@Result(property = "dname" ,column = "dname"),
@Result(property = "dloc" ,column = "dloc"),
@Result(property = "emps",javaType = Set.class, column = "deptid",
many = @Many(select="com.gx.mapper.EmpMapper.selectEmpByDeptId"))
}) //调用方法的全路径+方法名
public List<Dept> selectAll();
}
public interface EmpMapper {
/**
* 根据部门id查询员工信息
*/
@Select("select * from emp where deptid=#{deptid}")
public List<Emp>selectEmpByDeptId(Integer deptid);
}