小编Nir*_*pta的帖子

MapStruct 将对象映射到列表

我正在尝试使用 Mapstruct 将源对象映射到目标列表。执行此操作的干净映射结构方式应该是什么?

以下是我的 DTO。

源DTO

@Data
class Source
{

String a;

String b;

String C;

}

Run Code Online (Sandbox Code Playgroud)

目标DTO

@Data
class Target
{

String name;

List<Child> customList;

}

@Data
class Child
{

String attr1;

boolean attr2;

}

Run Code Online (Sandbox Code Playgroud)

我面临映射器类的问题。试图实现如下所示的目标。

public interface CustomMapper
{

@Mapper(target="customList" expression="java(new Child(a,false))"
@Mapper(target="customList"  expression="java(new Child(b,true))"
@Mapper(target="customList"  expression="java(new Child(c,false))"
Target sourceToTarget(Source source);


}
Run Code Online (Sandbox Code Playgroud)

我不想使用如下所示的qualifiedBy函数来实现此目的,因为所有转换都需要为每个元素进行编码。

List<Child> toList(Source source)
{
   List<Child> customList = new ArrayList<Child>();
   customList.add(new Child(source.getA(),false));
   customList.add(new Child(source.getB(),true)); 
   customList.add(new Child(source.getC(),false));

    return customList;
}
Run Code Online (Sandbox Code Playgroud)

java mapstruct

8
推荐指数
3
解决办法
3万
查看次数

标签 统计

java ×1

mapstruct ×1