0
我需要一個映射,以實現這一目標:MapStruct:如何將所有屬性映射到列表的第一個元素?
@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);
但是這句法不工作(順便說一句:這工作與Spring bean封裝)。 像this一個解決方案僅僅是一個夾生的解決方案:
@AsList
public <T> List<T> asList(T in) {
List<T> result = new ArrayList<T>();
if (in!=null) {
result.add(in);
}
return result;
}
這隻適用於只有一個屬性,因爲它總是會爲每個屬性的新名單。我不需要將每個屬性映射到新列表的第一個元素。該列表必須重用,但我不知道這是如何工作的。什麼是實現這一目標的正確途徑? 我想過這樣的事情:
@Mapping(source = "a", target = "transaction.a"),
@Mapping(source = "b", target = "transaction.b"),
@Mapping(source = "c", target = "transaction.c"),
...
Transaction dataToTransaction(DataModel model);
然後......
@Mapping([use Transaction from b4], target = "result");
但我怎麼能傳遞已經映射字段從上面? (我正在使用最新的最終版本1.1.0.Final)