今天在开发项目的时候,进行查询的时候出现了一个神奇的情况就是采用DTO实体查询,本来应该查出好多条数据,但是总是显示一条数据
查询代码如下Mapper里
<select id="getRoomDto2" resultMap="RoomDtoMap">
SELECT
r.room_id,
r.room_name,
r.room_rowTotal,
r.room_colTotal,
s.row_index,
s.col_index,
s.person_name
FROM
t_seat s
LEFT JOIN t_room r ON r.room_id = s.room_id
</select>
在数据库里查询如下图所示,会有很多的数据
但是在测试的时候发现只有一条数据,后来问了一下同事,才发现是mapper文件里dto的resultMap这里的问题
1.resultMap里的每一个必须有唯一的id查询,如上图所示查询出来的前四个字段是完全相同的,这里相对应的是RoomDtoMap里的第一部分,如果这也写下去就会出现查询只有一条数据的结果,
所有这里必须再给一个唯一的id,可以在查询里加上seat_id,这也就可以避免这个问题。
代码如下
<resultMap id="RoomDtoMap" type="station