Bonjour,
j'essaye de mapper des list de String en utulisant mapstruct et lorsque je n'ai qu'une liste il y'a pas d'erreur mais dès lors que j'ai plus d'une liste de même type, l'erreur est générée. voici ma class mapper
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
@Mapper(
    collectionMappingStrategy = CollectionMappingStrategy.ADDER_PREFERRED,
    nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS,
    uses = ProtoWrappersMapper.class)
public interface MemberImportResultMapper {
  MemberImportResultMapper INSTANCE = Mappers.getMapper(MemberImportResultMapper.class);
 
  @Mapping(source = "rejected", target = "rejectedList")
  @Mapping(source = "accepted", target = "acceptedList")
  MemberImportResultDto fromMemberImportResult(MemberImportResult memberImportResult);
}
mon test:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class MemberImportResultMapperTest {
 
  private MemberImportResultMapper mapper = Mappers.getMapper(MemberImportResultMapper.class);
 
  @Test
  public void whenFromMemberImportResult_givenMemberImportResult_thenMemberImportResultDto() {
 
    MemberImportResult memberImportResult =
        MemberImportResult.builder()
            .nbProcessedLines(3)
            .rejected(Collections.singletonList("yvan@gmail.com"))
            .accepted(Arrays.asList("paul@gmail.com", "pierre@yahoo.fr"))
            .build();
 
    MemberImportResultDto memberImportResultDto = mapper.fromMemberImportResult(memberImportResult);
 
    assertEquals(
        memberImportResultDto.getNbProcessedLines().getValue(),
        memberImportResult.getNbProcessedLines());
    assertEquals(
        memberImportResultDto.getRejectedList().size(),
        memberImportResult.getRejected().size());
 
    assertEquals(
        memberImportResultDto.getAcceptedList().size(),
        memberImportResult.getAccepted().size());
  }
}
mes classes objet que j'ai bien évidement simplifié pour illustré le problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MemberImportResult {
  private long nbProcessedLines;
 
  @Builder.Default private List<String> rejected= new ArrayList<>();
 
  @Builder.Default private List<String> accepted = new ArrayList<>();
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class MemberImportResultDto {
  private long nbProcessedLines;
 
  @Builder.Default private List<String> rejected= new ArrayList<>();
 
  @Builder.Default private List<String> accepted = new ArrayList<>();
}
merci