• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spring Boot - MapStruct

Object Storage Arubacloud
0 głosów
238 wizyt
pytanie zadane 4 czerwca 2021 w Java przez Uwegi Początkujący (430 p.)
Dlaczego poniższy kod nie działa?


@Mapper(componentModel = "spring")
public abstract class FlashcardMapper {

    @Mapping(source = "word.englishWord", target = "englishWord")
    @Mapping(source = "word.polishWord", target = "polishWord")
    @Mapping(target = "audio", expression = "java(getAudio(apiWord))")
    public abstract FlashcardDTO ApiWordToFlashcard(ApiWord[] apiWord, Word word);

    public String getAudio(ApiWord[] apiWord) {
        return apiWord[0].getPhonetics().get(0).getAudio();
    }
}

Błąd:

java: Can't generate mapping method from iterable type to non-iterable type.

 

1 odpowiedź

0 głosów
odpowiedź 4 czerwca 2021 przez Wiciorny Ekspert (270,110 p.)

Nazwa samej treści jest nieco niewłaściwa.

Odpowiedź ogólna - Takie mapowanie jest zabronione.
nie możesz mapować czegoś co jest "iterowane" z zasady kolekcja, czy też lista - do typu obiektowego.
Nie wiem jak zachowuje się u Ciebie metoda  

getAudio();

więc tez nie jestem wstanie powiedzieć gdzie jest dokładny błąd, na pewno wskazuje już nato błędne mapowanie w adnotacji.  @
W adnotacjach nie wiem czym są źródła/i cel targer ... prawdopodobnie robisz błąd  mechanizm @Mapper działa tak, że najpierw sprawdza  pierwszy parametr źródłowy.  apiWord - nie jest podany wprost, stąd nie może weryfikować źródła 

Podobne pytania

0 głosów
1 odpowiedź 326 wizyt
pytanie zadane 13 czerwca 2023 w Java przez Mikołaj Pątkowski Użytkownik (530 p.)
0 głosów
1 odpowiedź 213 wizyt
pytanie zadane 13 maja 2023 w Java przez mm Użytkownik (890 p.)
0 głosów
1 odpowiedź 145 wizyt
pytanie zadane 16 kwietnia 2023 w Java przez mm Użytkownik (890 p.)

92,570 zapytań

141,422 odpowiedzi

319,642 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...