使用MyBatis进行一对多的关系映射进行查询只能查到一条结果
为什么我的配置完一对多关系映射之后,只能输出一条结果。
为什么我的配置完一对多关系映射之后,只能输出一条结果。
2016-05-21
要进行分组
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="Command">
<resultMap type="com.imooc.bean.Command" id="Command">
<id column="id" jdbcType="INTEGER" property="id"/>
<result column="command" jdbcType="VARCHAR" property="command"/>
<result column="DESCRIPTION" jdbcType="VARCHAR" property="description"/>
<!-- resultMap 夸文件引用需要标明夸文件的 namespace="CommandContent" -->
<!-- 在主表中关联字表 在一个entity中包含另一个 entity -->
<collection property="content" resultMap="CommandContent.Content"/>
</resultMap>
<select id="queryCommandList" parameterType="com.imooc.bean.Command" resultMap="Command">
<!-- 对应查询结果的字段来匹配 而不是数据库中的字段名
a.id 与 b.id 查询出结果后 id字段不会带前缀
那么结果集 中会有两个id字段
如果给字段增加别名,那么getInt() 中则要写别名
-->
select a.ID as name, a.command, a.DESCRIPTION, b.ID, b.CONTENT, b.COMMAND_ID
from COMMAND a left join COMMAND_CONTENT b
on a.ID=b.COMMAND_ID
<where>
<if test="command != null and !"".equals(command.trim())">
and a.command=#{command}
</if>
<if test="description != null and !"".equals(description.trim())">
and a.DESCRIPTION like '%' #{description} '%'
</if>
</where>
</select>
</mapper>
举报