如何使用 MapStruct 在一个字段中应用 List?
How to apply List in one field with MapStruct?
我有这个 POJO :
public class PlayerDto {
private Long id;
private String name;
private String past;
}
我有这个实体:
public class Player {
private Long id;
private String name;
private List<String> past;
}
如何通过 MapStruct 将 List<String> past
映射到 DTO 的 String past
中?例如,列表包含 [Monty、Boto、Flaouri],而 DTO 的字符串必须在单个字符串中包含 "Monty, Boto, Flaouri"。
这种经典方式不适用于目标和源:
@Mappings({
@Mapping(target = "past", source = "past"),
})
PlayerDto entityToDto(final Player entity);
谢谢
我想您需要在映射器接口中定义一个默认方法来处理从 List<String>
到 String
的数据转换。 Mapstruct 将自动使用默认方法。
映射的默认方法签名应如下所示:
String map(List<String> past)
示例:
default String map(List<String> past) {
return past.stream().collect(Collectors.joining(","));
}
我有这个 POJO :
public class PlayerDto {
private Long id;
private String name;
private String past;
}
我有这个实体:
public class Player {
private Long id;
private String name;
private List<String> past;
}
如何通过 MapStruct 将 List<String> past
映射到 DTO 的 String past
中?例如,列表包含 [Monty、Boto、Flaouri],而 DTO 的字符串必须在单个字符串中包含 "Monty, Boto, Flaouri"。
这种经典方式不适用于目标和源:
@Mappings({
@Mapping(target = "past", source = "past"),
})
PlayerDto entityToDto(final Player entity);
谢谢
我想您需要在映射器接口中定义一个默认方法来处理从 List<String>
到 String
的数据转换。 Mapstruct 将自动使用默认方法。
映射的默认方法签名应如下所示:
String map(List<String> past)
示例:
default String map(List<String> past) {
return past.stream().collect(Collectors.joining(","));
}