mybaits 一对多 关联查询

<resultMap id="BaseResultMap" type="com.wj.weixin.menu.model.WxMenu" >
    <id column="WX_ID" property="wxId" jdbcType="VARCHAR" />
    <id column="id" property="id" jdbcType="INTEGER" />
    <result column="menu_type" property="menuType" jdbcType="VARCHAR" />
    <result column="menu_name" property="menuName" jdbcType="VARCHAR" />
    <result column="menu_key" property="menuKey" jdbcType="VARCHAR" />
    <result column="menu_url" property="menuUrl" jdbcType="VARCHAR" />
    <result column="media_id" property="mediaId" jdbcType="VARCHAR" />
    <result column="pid" property="pid" jdbcType="INTEGER" />
    <result column="is_has_child" property="isHasChild" jdbcType="INTEGER" />
    <result column="seq" property="seq" jdbcType="INTEGER" />
    <result column="keywords_id" property="keywordsId" jdbcType="INTEGER" />
    <result column="del_flag" property="delFlag" jdbcType="INTEGER" />
    <result column="create_time" property="createTime" jdbcType="TIMESTAMP" />
    <result column="update_time" property="updateTime" jdbcType="TIMESTAMP" />
  </resultMap>
  <resultMap type="com.wj.weixin.menu.model.WxMenu" id="menuResultMap" extends="BaseResultMap">
  	  <collection property="subWxMenu" column="id" javaType="ArrayList" ofType="com.wj.weixin.menu.model.WxMenu">
			 <id column="b_id" 					property="id" jdbcType="INTEGER" />
		    <result column="b_WX_ID" 			property="wxId" jdbcType="VARCHAR" />
		    <result column="b_menu_type" 		property="menuType" jdbcType="VARCHAR" />
		    <result column="b_menu_name" 		property="menuName" jdbcType="VARCHAR" />
		    <result column="b_menu_key" 		property="menuKey" jdbcType="VARCHAR" />
		    <result column="b_menu_url" 		property="menuUrl" jdbcType="VARCHAR" />
		    <result column="b_media_id" 		property="mediaId" jdbcType="VARCHAR" />
		    <result column="b_pid" 				property="pid" jdbcType="INTEGER" />
		    <result column="b_is_has_child" 	property="isHasChild" jdbcType="INTEGER" />
		    <result column="b_seq" 				property="seq" jdbcType="INTEGER" />
		    <result column="b_keywords_id" 		property="keywordsId" jdbcType="INTEGER" />
		    <result column="b_del_flag" 		property="delFlag" jdbcType="INTEGER" />
		    <result column="b_create_time" 		property="createTime" jdbcType="TIMESTAMP" />
		    <result column="b_update_time" 		property="updateTime" jdbcType="TIMESTAMP" />
	  </collection>
  </resultMap>
  <select id="selectAllByWxId" resultMap="menuResultMap" parameterType="java.lang.String" >
    select 
		 a.WX_ID, 
		 a.id, 
		 a.menu_type, a.menu_name, 
		 a.menu_key, a.menu_url, 
		 a.media_id, a.pid, a.is_has_child, 
		 a.seq, a.keywords_id, a.del_flag, 
		 a.create_time, a.update_time,
		 b.WX_ID 					AS b_WX_ID, 
		 b.id    					AS b_id, 
		 b.menu_type 				AS b_menu_type, 
		 b.menu_name 				AS b_menu_name, 
		 b.menu_key  				AS b_menu_key, 
		 b.menu_url  				AS b_menu_url, 
		 b.media_id  				AS b_media_id, 
		 b.pid       				AS b_pid,         
		 b.is_has_child 			AS p_is_has_child, 
		 b.seq 						AS b_seq, 	    
		 b.keywords_id 				AS b_keywords_id, 
		 b.del_flag 				AS b_del_flag, 
		 b.create_time 				AS b_create_time, 
		 b.update_time 				AS b_update_time
	FROM t_wx_menu a left 
	JOIN t_wx_menu b on b.pid = a.id
    where a.WX_ID = #{wxId,jdbcType=VARCHAR}
    and a.del_flag = 0
    and b.del_flag = 0
  </select>


以上是mapper.xml 配置,

关键点:collection 标签

javaType ,ofType 

sql的写法


关联查存在着N+1的问题

见:http://www.tuicool.com/articles/M3QJvu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值