mybatis 返回结果里面嵌套list
Posted 刀马戏
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis 返回结果里面嵌套list相关的知识,希望对你有一定的参考价值。
前言:
之前一直习惯用mybatisPlus,表结构也都比较简单,mybatisPlus对单表的CRUD 比较友好,今年新换了一家公司,业务场景相对复杂,需要跨表跨库查询数据,故,毕业两年,刚开始接触手写sql,话不多说,先介绍今天的主题:很多时候,在查询数据库的时候。经常会出现以下的情况:
我们需要获取到combo_id 所对应的所有的sign_sugject_id,此时,就可以在mybatis的返回结果中嵌套一个list来处理sign_sugject_id。
具体代码如下:
1. 实体类代码:
1 public class XXX{ 2 3 private Long id; 4 private String comName; 5 private int companyType; 6 7 public int getCompanyType() { 8 return companyType; 9 } 10 11 public void setCompanyType(int companyType) { 12 this.companyType = companyType; 13 } 14 15 public Long getId() { 16 return id; 17 } 18 19 public void setId(Long id) { 20 this.id = id; 21 } 22 23 public String getComName() { 24 return comName; 25 } 26 27 public void setComName(String comName) { 28 this.comName = comName; 29 } 30 } 31 32 public class YYY{ 33 34 private String title; 35 private List<XXX> signSubject; 36 }
2.mapper.xml 文件
1 <resultMap id="result" type="YYY"> 2 <result property="name" column="name"/> 3 <collection property="signSubject" ofType="XXX"> 4 <id property="id" column="id"/> 5 <result property="comName" column="com_name"/> 6 <result property="companyType" column="company_type"/> 7 </collection> 8 </resultMap> 9 10 <select id="test" resultMap="result"> 11 select a.name, c.id, c.com_name,b.company_type 12 a 13 left join b on a.id = b.combo_id 14 left join c on b.sign_subject_id = c.id 15 where a.id = 109 16 </select>
分析:
注意<collection></collection>标签中的内容,其中的<id>的取值就是我们需要分组的combo_id,<result>标签中的内容,和XXX实体类的参数名一一对应。
以上是关于mybatis 返回结果里面嵌套list的主要内容,如果未能解决你的问题,请参考以下文章