一、实体类(getset方法,toString,构造方法忽略)
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); }
三、测试
public class myTest { SqlSession session = MyBatisUtils.openSession(); DeptMapper deptMapper = session.getMapper(DeptMapper.class); @Test public void selectAllEmp() { List<Dept> list = deptMapper.selectAll(); for (Dept d : list) { System.out.println(d); } MyBatisUtils.closeSession(session); } }