不用再在EmpDept中将Dept的所有属性都挨个写一遍,只需要引用Dept这个对象即可
@Setter
@Getter
public class EmpDept extends Emp {
private Dept dept;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}
<resultMap id="EmpDeptResultMap" type="com.example.hello.entity.EmpDept" extends="com.example.hello.dao.EmpMapper.BaseResultMap">
<association property="dept" resultMap="com.example.hello.dao.DeptMapper.BaseResultMap"></association>
</resultMap>
<select id="selectEmpDept" resultMap="EmpDeptResultMap">
SELECT * from emp e left join dept d on d.deptno = e.deptno
</select>
xml说明
association的resultMap应用的BaseResultMap不在当前空间下,所以要加上命名空间
@SpringBootTest
class EmpDeptMapperTest {
@Autowired
EmpDeptMapper empDeptMapper;
@Test
void selectEmpDept() {
List<EmpDept> empDepts = empDeptMapper.selectEmpDept();
for (EmpDept empDept : empDepts) {
System.out.println(empDept);
}
}
}
{"comm":20000.0,"createTime":1659164366000,"dept":{"deptno":1,"dname":"开发部","loc":"北京"},"deptno":1,"empno":6,"ename":"彭和尚","hiredate":351446400000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4}
{"comm":10000.0,"createTime":1659164366000,"dept":{"deptno":1,"dname":"开发部","loc":"北京"},"deptno":1,"empno":7,"ename":"张中","hiredate":351619200000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4}
{"comm":15000.0,"createTime":1659164366000,"dept":{"deptno":1,"dname":"开发部","loc":"北京"},"deptno":1,"empno":8,"ename":"说不得","hiredate":370454400000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4,"sal":1.0}
{"comm":10000.0,"createTime":1659164366000,"dept":{"deptno":1,"dname":"开发部","loc":"北京"},"deptno":1,"empno":9,"ename":"冷谦","hiredate":368726400000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4}
{"comm":30000.0,"createTime":1659164366000,"dept":{"deptno":1,"dname":"开发部","loc":"北京"},"deptno":1,"empno":10,"ename":"周巅","hiredate":376156800000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4}
{"createTime":1659164366000,"dept":{"deptno":2,"dname":"测试部","loc":"上海"},"deptno":2,"empno":11,"ename":"殷野王","hiredate":545760000000,"job":"教主舅舅","lDelete":0,"lVersion":1,"mgr":3}
{"createTime":1659164366000,"dept":{"deptno":2,"dname":"测试部","loc":"上海"},"deptno":2,"empno":12,"ename":"殷素素","hiredate":376156800000,"job":"教主妈妈","lDelete":0,"lVersion":1,"mgr":3}
{"createTime":1659164366000,"dept":{"deptno":2,"dname":"测试部","loc":"上海"},"deptno":2,"empno":13,"ename":"小昭","hiredate":380563200000,"job":"神秘丫头","lDelete":0,"lVersion":1,"mgr":2}
{"createTime":1659164366000,"dept":{"deptno":3,"dname":"市场部","loc":"广州"},"deptno":3,"empno":2,"ename":"紫衫龙王","hiredate":360864000000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1}
{"createTime":1659164366000,"dept":{"deptno":3,"dname":"市场部","loc":"广州"},"deptno":3,"empno":3,"ename":"白眉鹰王","hiredate":354988800000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1}
{"createTime":1659164366000,"dept":{"deptno":3,"dname":"市场部","loc":"广州"},"deptno":3,"empno":4,"ename":"金毛狮王","hiredate":357494400000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1}
{"createTime":1659164366000,"dept":{"deptno":3,"dname":"市场部","loc":"广州"},"deptno":3,"empno":5,"ename":"青翼蝙王","hiredate":345830400000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1}
{"comm":200.0,"createTime":1659164366000,"dept":{"deptno":4,"dname":"运营部","loc":"杭州"},"deptno":4,"empno":1,"ename":"张无忌","hiredate":374774400000,"job":"教主","lDelete":0,"lVersion":2,"updateTime":1659194462000}
单条数据格式
{
"comm": 200,
"createTime": 1659164366000,
"deptno": 4,
"empno": 1,
"ename": "张无忌",
"hiredate": 374774400000,
"job": "教主",
"lDelete": 0,
"lVersion": 2,
"updateTime": 1659194462000,
"dept": {
"deptno": 4,
"dname": "运营部",
"loc": "杭州"
}
}
@Setter
@Getter
public class DeptEmp extends Dept {
private List<Emp> emps;
@Override
public String toString() {
return JSON.toJSONString(this);
}
}
<resultMap id="DeptEmpResultMap" type="com.example.hello.entity.DeptEmp" extends="com.example.hello.dao.DeptMapper.BaseResultMap">
<collection property="emps" ofType="Emp" resultMap="com.example.hello.dao.EmpMapper.BaseResultMap"></collection>
</resultMap>
注意:
@SpringBootTest
class EmpDeptMapperTest {
@Autowired
EmpDeptMapper empDeptMapper;
@Test
void selectDeptEmp() {
List<DeptEmp> deptEmps = empDeptMapper.selectDeptEmp();
for (DeptEmp deptEmp : deptEmps) {
System.out.println(deptEmp);
}
}
}
{"deptno":4,"dname":"运营部","emps":[{"comm":200.0,"createTime":1659164366000,"deptno":4,"empno":1,"ename":"张无忌","hiredate":374774400000,"job":"教主","lDelete":0,"lVersion":2,"updateTime":1659194462000}],"loc":"杭州"}
{"deptno":3,"dname":"市场部","emps":[{"createTime":1659164366000,"deptno":3,"empno":2,"ename":"紫衫龙王","hiredate":360864000000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1},{"createTime":1659164366000,"deptno":3,"empno":3,"ename":"白眉鹰王","hiredate":354988800000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1},{"createTime":1659164366000,"deptno":3,"empno":4,"ename":"金毛狮王","hiredate":357494400000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1},{"createTime":1659164366000,"deptno":3,"empno":5,"ename":"青翼蝙王","hiredate":345830400000,"job":"护教法王","lDelete":0,"lVersion":1,"mgr":1}],"loc":"广州"}
{"deptno":1,"dname":"开发部","emps":[{"comm":20000.0,"createTime":1659164366000,"deptno":1,"empno":6,"ename":"彭和尚","hiredate":351446400000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4},{"comm":10000.0,"createTime":1659164366000,"deptno":1,"empno":7,"ename":"张中","hiredate":351619200000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4},{"comm":15000.0,"createTime":1659164366000,"deptno":1,"empno":8,"ename":"说不得","hiredate":370454400000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4,"sal":1.0},{"comm":10000.0,"createTime":1659164366000,"deptno":1,"empno":9,"ename":"冷谦","hiredate":368726400000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4},{"comm":30000.0,"createTime":1659164366000,"deptno":1,"empno":10,"ename":"周巅","hiredate":376156800000,"job":"五散人","lDelete":0,"lVersion":1,"mgr":4}],"loc":"北京"}
{"deptno":2,"dname":"测试部","emps":[{"createTime":1659164366000,"deptno":2,"empno":11,"ename":"殷野王","hiredate":545760000000,"job":"教主舅舅","lDelete":0,"lVersion":1,"mgr":3},{"createTime":1659164366000,"deptno":2,"empno":12,"ename":"殷素素","hiredate":376156800000,"job":"教主妈妈","lDelete":0,"lVersion":1,"mgr":3},{"createTime":1659164366000,"deptno":2,"empno":13,"ename":"小昭","hiredate":380563200000,"job":"神秘丫头","lDelete":0,"lVersion":1,"mgr":2}],"loc":"上海"}
单条数据格式
{
"deptno": 4,
"dname": "运营部",
"loc": "杭州",
"emps": [
{
"comm": 200,
"createTime": 1659164366000,
"deptno": 4,
"empno": 1,
"ename": "张无忌",
"hiredate": 374774400000,
"job": "教主",
"lDelete": 0,
"lVersion": 2,
"updateTime": 1659194462000
}
]
}
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有