您的位置:首页 > 大数据 > 人工智能

mybaits 一对多 关联查询

2016-04-13 20:11 471 查看
<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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: