MyBatis collection 一种用法

最近用到 collection 看了很多帖子,写的不是很明白,折腾了半天,自己梳理下,发出来,如下:

注意,spring 框架架构用到了可能会出现加载问题,这个网上有处理方式

 
<!--一对多,阶段集合一-->
 <collection property="stageList" javaType="java.util.ArrayList"
       ofType="com.datavbao.campaign.app.dto.CampaignStageCreateReqDTO"
                            
       select="com.datavbao.campaign.app.dao.CampaignStageMapper.selectListStageByCaId"
                    column="{caId=ca_id}">
 </collection>



1. stageList:对应的是主查询里的属性:如下
 /**
     * 活动阶段目标集合
     */
private List<CampaignStageCreateReqDTO> stageList = new ArrayList<CampaignStageCreateReqDTO>();

2. CampaignStageCreateReqDTO:这里是映射的是自己封装后的查询数据model
3. selectListStageByCaId:这里是查询映射的查询sql

4. column="{caId=ca_id}":这里要注意下,caId 是实体字段,ca_id 是数据库字段
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用MyBatiscollection标签进行select查询时,有两种常见的用法。 第一种用法是关联查询,通过在resultMap中使用collection标签将两个表关联起来。在查询语句中使用嵌套select查询,以获取需要的数据。具体的配置如下: ```xml <resultMap type="A类路径" id="itemNew"> <id column="id" property="a_id"/> <result column="value" property="a_value"/> <collection column="{aId=a_id}" property="与A类字段名一致" ofType="B类路径" select="getList"/> </resultMap> <select id="getListNew(与dao中方法名保持一致)" parameterType="类路径" resultMap="itemNew"> select a.id a_id ,a.value a_value from table_a a </select> <resultMap type="类路径" id="itemList"> <result column="id" property="b_id"/> <result column="value" property="b_value"/> </resultMap> <select id="getList(与上面select标签值保持一致)" resultMap="itemList"> select b.id b_id , b.value b_value from table_b b where b.aid = #{aId} </select> ``` 第二种用法是一个SQL查询出所有需要的数据。在resultMap中使用collection标签将两个表关联起来,通过指定一个字段作为关联条件。具体的配置如下: ```xml <resultMap type="A类路径" id="item"> <id column="id" property="id"/> <result column="value" property="value"/> <collection column="id" property="与A类路径字段名一致" ofType="B类路径"> <result column="id" property="b_id"/> <result column="value" property="b_value"/> </collection> </resultMap> ``` 其中,column="{aId=a_id}"用于传值给子collection,如果需要传多个参数,可以用逗号隔开,例如column="{aId=a_id,e=e}"。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值