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

Spring Boot - MapStruct

Fiszki IT
Fiszki IT
0 głosów
50 wizyt
pytanie zadane 4 czerwca 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 przez Wiciorny Mędrzec (166,950 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
0 odpowiedzi 27 wizyt
pytanie zadane 26 sierpnia w Java przez SaQie Nowicjusz (180 p.)
+1 głos
1 odpowiedź 48 wizyt
pytanie zadane 7 sierpnia w Java przez Comparion Obywatel (1,800 p.)
0 głosów
1 odpowiedź 51 wizyt
pytanie zadane 8 marca w Java przez Uwegi Początkujący (430 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

84,745 zapytań

133,550 odpowiedzi

295,964 komentarzy

56,007 pasjonatów

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...