resultMap:
<resultMap id="DeviceListResultMap" type="com.wzly.model.vo.DeviceVO">
<id column="id" property="id" />
<result column="macAddress" property="macAddress" />
<result column="isOnline" property="isOnline" />
<result column="deviceName" property="deviceName" />
<result column="plies" property="plies" />
<!-- 通用查询映射结果 -->
<collection property="cells" ofType="com.wzly.model.vo.CellVO" >
<id column="cellId" property="cellId" />
<result column="cell" property="cell" />
<result column="isUsing" property="isUsing" />
</collection>
</resultMap>
sql:
<select id="getDeviceList" resultMap="DeviceListResultMap">
select d.id id,d.device_name deviceName,d.is_online isOnline,
d.plies plies,d.device_id macAddress,c.id cellId,c.is_using isUsing,c.cell cell
FROM device d
right join cell c
on d.id = c.device_id
<where>
<if test="device != null">
<if test="device.isOnline != null">
AND d.is_online = #{device.isOnline}
</if>
<if test="device.deviceName != null">
AND d.device_name like concat('%',#{device.deviceName},'%')
</if>
</if>
</where>
ORDER BY c.cell * 1
</select>
实体对象DeviceVO:
@Data
public class DeviceVO {
private String id;
private String macAddress;
private String isOnline;
private String deviceName;
private String plies;
private List<CellVO> cells;
}
实体对象CellVO :
@Data
public class CellVO {
private String cellId;
private String cell;
private String isUsing;
}
备注:
CellVO标签中的id不能与DeviceVO中的id字段相同,否则会出现只有List