著论准过秦,作赋拟子虚。这篇文章主要讲述Mybatis-----查询结果合并成集合相关的知识,希望能为你提供帮助。
如上查询结果,通过主表左连接出来多条记录。
目前的查询结果共有12条记录,但是根据 id来看,实际上只有2条主表记录,其它的都是
通过主表左连接出来的。
如何让查询结果只有2条?
MyBatis提供了合并的语法
@Data
public class Subsystem
private int subsystemId;
private String subsystemKey;
private String subsystemName;
private Integer sn;
private boolean selected;
//持有Page对象集合
private List<
Page>
pages;
@Data
public class Page
private int pageId;
private String pageKey;
private String pageName;
private boolean selected;
private Integer parentPageId;
private Integer sn;
private List<
Page>
subPages;
<
select id="list" resultMap="listWithPage">
SELECT
ts.id,
ts.subsystem_key,
ts.subsystem_name,
tp.id as page_id,
tp.page_key,
tp.page_name,
ts.SN,
tp.SN as page_sn,
tp.parent_page_id
FROM t_subsystem ts
LEFT JOIN t_page tp ON ts.id = tp.subsystem_id
ORDER BY ts.SN , tp.SN
<
/select>
<
resultMap id="listWithPage"
<
!-- 这里返回最终的对象类型-->
type="$package.Subsystem">
<
id property="subsystemId" column="id"/>
<
result property="subsystemName" column="subsystem_name"/>
<
result property="subsystemKey" column="subsystem_key"/>
<
result property="sn" column="sn"/>
<
collection property="pages"
<
!-- 这里填写持有的集合对象类型-->
ofType="$package.Page">
<
id property="pageId" column="page_id"/>
<
result property="pageKey" column="page_key"/>
<
result property="pageName" column="page_name"/>
<
result property="sn" column="page_sn"/>
<
result property="parentPageId" column="parent_page_id"/>
<
/collection>
<
/resultMap>
【Mybatis-----查询结果合并成集合】
推荐阅读
- sequelize.query 原始查询
- SQLServer tempdb 数据库文件迁移到D盘
- css3 监控横屏,内容旋转90度
- 如何查看请求回来的JSON数据
- 如何设置导出excel的格式
- JavaScript 时间戳格式化为日期或时间
- ExtJs上传文件
- traceroute/tracert--获取网络路由路径
- C#异步执行代码块