1.基本定义
先说明下两个标签的含义:
- collection(集合):用于一对多。将关联查询信息映射到集合对象中。 标签注意使用ofType指定关联映射的List中pojo的类型。
- association(关联):用于多对一,一对一。将关联查询信息映射到单个对象中。 标签注意使用javaType指定关联映射的对象类型 。
有个坑要十分注意,假如在Model里加入了有参构造函数,那么必须再加入一个无参构造函数,否则会造成无法解析。
2.Collection 一对多查询
定义ResultMap:
SQL语句以及定义
输出结构:
[
{
"id": 1,
"name": "云帆",
"domains": [
{
"domainId": 1,
"type": "点播",
"domain": "www.sina.com",
"cname": "tv.cztv.com.yf.com",
"platform": "H5"
},
{
"domainId": 2,
"type": "直播",
"domain": "tv1.cztv.com",
"cname": "tv.cztv.com.lx.com",
"platform": "H5"
}
],
"provinces": [
{
"provinceId": 1,
"province": "浙江"
},
{
"provinceId": 4,
"province": "北京"
}
]
},
{
"id": 2,
"name": "蓝汛",
"domains": [
{
"domainId": 1,
"type": "点播",
"domain": "www.sina.com",
"cname": "tv.cztv.com.yf.com",
"platform": "H5"
},
{
"domainId": 2,
"type": "直播",
"domain": "tv1.cztv.com",
"cname": "tv.cztv.com.lx.com",
"platform": "H5"
}
],
"provinces": [
{
"provinceId": 2,
"province": "江苏"
},
{
"provinceId": 3,
"province": "广州"
}
]
}
]
2.Association 多对一查询
定义ResultMap:
SQL语句:
输出结构:
[
{
"domain_id": 1,
"domain": "www.sina.com",
"supplier": {
"supplierId": 2,
"name": "蓝汛",
"status": "在用"
}
},
{
"domain_id": 2,
"domain": "tv1.cztv.com",
"supplier": {
"supplierId": 2,
"name": "蓝汛",
"status": "在用"
}
}
]