mybatis 使用map封装查询列表字段再包含(嵌套)map列表的查询配置方式

情景:user表和account表,一个用户对应多个account,account表存在外键关联user表主键id

要求在查询user列表时查询出对应的account列表,形如

userList : [

{

    id:1,

    name:"xiaoming",

    accountList : [{

        id:1,

     account:"",

       password:""

    }]    

}

]

主要是xml配置

  <select id="findUserList" resultMap="users">
 	select a.id, a.headimg, a.nickname, a.create_time createTime,
 	a.id as accountId from user
  </select>
  
  <resultMap id="users" type="map">
   <collection property="loginWays" column="accountId" javaType="ArrayList" select="loginList"/>
  </resultMap>

  <select id="loginList" resultType="map">
	   select a.type, a.third_nickname thirdNickname from third_account a where a.account_id = #{accountId}
  </select>

主查询findUserList

a.id as accountId对应resultMap中的column属性值,也就是将查询列表中的userId作为参数带入到loginList查询中作为参数,查询结果都使用map封装。loginWays作为map的key,与其它单字段结果值并列。 javaType="ArrayList"表明查询结果是list


参考官方封装POJO  http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值