一对一
Controller
public R selectAll(Page<QualityStandard> page, QualityStandard qualityStandard)
Mapper
IPage<QualityStandard> findByPage(IPage<QualityStandard> page,@Param("bean") QualityStandard qualityStandard);
xml
<select id="findByPage" resultMap="BaseResultMap">
select qs.*,a.id as aid,a.sid,a.name as aname,a.standard,a.unit from quality_standard as qs LEFT JOIN analysis_item as a on qs.id = a.sid
<if test="bean.pid != null" >
where qs.pid = #{bean.pid}
</if>
order by qs.id desc
</select>
一对多
考虑到Mybatis-Plus分页bug(分页查询的时候把一对多,多侧的数据当成一条分页数据)
bean
public class QualityStandard extends Model<QualityStandard> {
@ApiModelProperty(hidden=true)
@TableId(type = IdType.AUTO)
private Integer id;
private String name;
private Integer pid;
private String productName;
private Integer type;
@TableField(exist = false)
private List<AnalysisItem> list;
}
mapper
IPage<QualityStandard> findByPage(IPage<QualityStandard> page,@Param("bean") QualityStandard qualityStandard);
xml
<resultMap id="BaseResultMap" type="com.anruisi.mes.quality.entity.QualityStandard">
<id column="id" property="id"/>
<result column="name" property="name"/>
<result column="pid" property="pid"/>
<result column="product_name" property="productName"/>
<result column="type" property="type"/>
<collection property="list" ofType="com.anruisi.mes.quality.entity.AnalysisItem" select="queryItemInfoById" column="id">
</collection>
</resultMap>
<resultMap id="ItemBeans" type="com.anruisi.mes.quality.entity.AnalysisItem">
<id column="aid" property="id"/>
<result column="sid" property="sid"/>
<result column="aname" property="name"/>
<result column="standard" property="standard"/>
<result column="unit" property="unit"/>
</resultMap>
<select id="findByPage" resultMap="BaseResultMap">
select qs.* from quality_standard as qs
<if test="bean.pid != null" >
where qs.pid = #{bean.pid}
</if>
order by qs.id desc
</select>
<select id="queryItemInfoById" resultMap="ItemBeans">
select a.id as aid,a.sid,a.name as aname,a.standard,a.unit from analysis_item as a where a.sid=#{id}
</select>