1. 需要返回的实体类
public class NutritionPackageVo{
//图片对象
private List<ImageUrlVo> imageUrlVos;
//用户id
private String userId;
}
2. ImageUrlVo
@ToString
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ImageUrlVo {
private String medicineName;
private String image;
}
3. mybatis返回结果集
<resultMap type="com.ls.domain.vo.NutritionPackageVo" id="NutritionPackageVoResult">
<result property="id" column="id" />
<result property="userId" column="user_id" />
<collection property="imageUrlVos" ofType="com.ls.domain.vo.ImageUrlVo" select="selectMedicineImage" column="id"/>
</resultMap>
4. sql语句
<select id="selectNutritionPackageList" parameterType="com.ls.domain.NutritionPackage" resultMap="NutritionPackageVoResult">
select t1.* from ls_nutrition_package t1
</select>
<select id="selectMedicineImage" resultType="com.ls.domain.vo.ImageUrlVo">
select t4.image_url as image ,t4.name as medicineName from ls_user_info t1
where t1.id=#{id}
</select>
结果集标签中加入collection 标签,select标签对象一个新的sql语句,column代表传入新sql语句的参数,取得是第一个sql语句的id属性。这样就可以在对应的字段返回list对象了,如果是字段只想返回list<string>这种,第二个sql语句就只select 一个字段就可以了