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'erreurest générée. voici ma class mapper
Code : Sélectionner tout - Visualiser dans une fenêtre à part UnsupportedOperationmon test:
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); }
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
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()); } }
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<>(); }merci
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<>(); }
Partager