mybatis分组collection集合查询
代码
// block
<resultMap id="AssocList" type="java.util.Map">
<result column="sId" property="systemId"></result>
<result column="sName" property="systemName"></result>
<collection property="children" ofType="java.util.Map" javaType="java.util.ArrayList">
<result column="aId" property="associationId"></result>
<result column="aName" property="associationName"></result>
</collection>
</resultMap>
<!--获取社团分类列表-->
<select id="assocList" resultMap="AssocList">
select a.system_id as sId, b.system_name as sName, a.association_id as aId, a.association_name as aName
from association_table a, system_table b
where a.system_id=b.system_id
</select>
根据a表的system_id系编码分组查询所包含的社团,以resultMap返回,resultMap查询的第二个字段sName也是可以跨表查询出来的。
注意:type是用java.util.Map类,这样才不会返回多余的字段null值,不要写表的实体类。collection集合里的ofType也是同理,要用java.util.Map类,javaType要用java.util.ArrayList类,这样才能返回一个List列表,格式如下: