springboot myabtis返回list对象集合,对象的一个属性为List对象

  1. 需要返回的实体类
java 复制代码
public class NutritionPackageVo{
//图片对象
private List<ImageUrlVo> imageUrlVos;
//用户id
private String userId;
}
  1. ImageUrlVo
java 复制代码
@ToString
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ImageUrlVo {
    private String medicineName;

    private String image;
}
  1. mybatis返回结果集
java 复制代码
<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>
  1. sql语句
java 复制代码
<select id="selectNutritionPackageList" parameterType="com.ls.domain.NutritionPackage" resultMap="NutritionPackageVoResult">
        select t1.* from ls_nutrition_package t1
    </select>
java 复制代码
<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 一个字段就可以了