我想有一个双向Map从一个对象的列表到一个对象,其中包含一个列表。
class Person {
String firstName;
String lastName;
}
class Group { // Source
List<Person> people;
String groupID;
...
}
class Employee { // target
String firstName;
String lastName;
String employeeNumber;
...
}
我使用了报告政策。IGNORED:忽略所有不相关的字段。我只需要一个Group到List之间的Map,其中包含firstName和lastName字段。
有可能吗?我已经尝试过了,但是在构建过程中它给了我错误“不可能将可迭代Map到不可迭代。”
@Mapping(target="people", source".")
Group map(List<Employee>)
2条答案
按热度按时间kiz8lqtg1#
Mapstruct不支持此类Map。有关此问题,请参阅Mapstruct贡献者answer。
与解决方法类似,您可以实现自己的Map方法来转换为 Package 类。
kt06eoxx2#
MapStruct支持从源参数到目标参数的Map。这意味着您可以配置MapStruct以将源列表参数Map到目标列表属性。然而,正如https://stackoverflow.com/a/71181377/1115491中所指出的,不可能将单个集合参数Map到目标参数。唯一的工作方式是如果有多个源参数。
例如