今天在做一个增删改功能时候,用到了mybatis的accociation 关联了用户信息,地区信息,但是一直回显不成功,发现查询的用户信息,地区信息为空。
mapper中这样写的
<select id="getAllDeviceList" resultMap="TbDevice">
select *
from
<include refid="tb_device"></include> d
left join <include refid="tb_user"></include> u
on d.user_id=u.id
left join <include refid="tb_region"></include> r
on d.region_id=r.region_id
</select>
这样,device这个pojo中关联的user信息,region信息查询不出来。
经过研究发现,返回值类型应该是映射的 resultMap ,而不是直接映射到pojo
<select id="getAllDeviceList" resultMap="DeviceWithRegionBaseResultMap">
select *
from
<include refid="tb_device"></include> d
left join <include refid="tb_user"></include> u
on d.user_id=u.id
left join <include refid="tb_region"></include> r
on d.region_id=r.region_id
</select>
这样的话就可以根据accociation关联的user_id,region_id.查询出用户信息,地区信息了。