如何将 mapstruct 与具有两个参数的源一起使用?
How to use mapstruct with a source that has two parameters?
似乎 mapstruct 只需要一个参数就可以与 source 一起工作。如果设置 "source = {"id","name"} " 时我会出错。怎么解决的?
@Mapping(source = {"id","name"}, target = "person", qualifiedByName = "toPerson")
public MainData toEntity(InfoDTO dto);
@Named("toPerson")
public Person toPerson(Long id, String name) {
//some to do
}
我的实体:
MyData{
Person person;
}
InfoDTO{
Long id;
String name;
}
可以这样做:
@Mapper(componentModel = "spring")
public interface PersonMapper {
@Mapping(expression = "java(toPerson(dto))", target = "person")
MyData toEntity(InfoDto dto);
default Person toPerson(InfoDto dto) {
return new Person(dto.getId(),dto.getName());
}
}
似乎 mapstruct 只需要一个参数就可以与 source 一起工作。如果设置 "source = {"id","name"} " 时我会出错。怎么解决的?
@Mapping(source = {"id","name"}, target = "person", qualifiedByName = "toPerson")
public MainData toEntity(InfoDTO dto);
@Named("toPerson")
public Person toPerson(Long id, String name) {
//some to do
}
我的实体:
MyData{
Person person;
}
InfoDTO{
Long id;
String name;
}
可以这样做:
@Mapper(componentModel = "spring")
public interface PersonMapper {
@Mapping(expression = "java(toPerson(dto))", target = "person")
MyData toEntity(InfoDto dto);
default Person toPerson(InfoDto dto) {
return new Person(dto.getId(),dto.getName());
}
}