Mybatis - association与collection的用法

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": "在用"
        }
    }
]

你可能感兴趣的:(Mybatis - association与collection的用法)