je besoin d'une cartographie pour y parvenir:MapStruct: Comment mapper tous les attributs au premier élément d'une liste?
@Mapping(source = "a", target = "result.transaction[0].a"),
@Mapping(source = "b", target = "result.transaction[0].b"),
@Mapping(source = "c", target = "result.transaction[0].c"),
...
Response dataToResponse(DataModel model);
Mais cette syntaxe ne fonctionne pas (BTW: Cela fonctionne avec emballage Spring Bean). Une solution comme this est juste une solution demi-cuite:
@AsList
public <T> List<T> asList(T in) {
List<T> result = new ArrayList<T>();
if (in!=null) {
result.add(in);
}
return result;
}
Cela ne fonctionne que pour exactement un attribut car il crée toujours une nouvelle liste pour chaque attribut. Je n'ai pas besoin de mapper chaque attribut au premier élément d'une nouvelle liste. La liste doit être réutilisée mais je ne sais pas comment cela fonctionne. Quelle est la bonne façon d'y parvenir? Je pensais à quelque chose comme ceci:
@Mapping(source = "a", target = "transaction.a"),
@Mapping(source = "b", target = "transaction.b"),
@Mapping(source = "c", target = "transaction.c"),
...
Transaction dataToTransaction(DataModel model);
puis ...
@Mapping([use Transaction from b4], target = "result");
Mais comment puis-je passer les champs déjà mis en correspondance d'en haut? (J'utilise la dernière version finale 1.1.0.Final)