我有一个简单的对象客户端
public class Client {
String externalCode;
String name;
String surname;
}
我想把它Map到几乎相同的物体上
public class User {
String internalCode;
String name;
String surname;
}
看,我想把外部代码Map到内部代码。我有一个方法可以做到这一点。我已经用自定义@codemapping注解标记了我的方法,并将该注解放在qualifiedby参数中。所以,这是我的Map。
@Mapper()
ClientMapper {
@CodeMapping
String toInternalCode(String externalCode) {
return externalCode + " internal part";
}
@Mapping(target = "internalCode", source = "externalCode", qualifiedBy = CodeMapping.class)
User toUser(Client client);
}
问题是名称和姓氏字段也使用tointernalcode方法Map。mapstruct看到我定义了一个方法,它将字符串Map到字符串,并认为应该在所有情况下使用它。
有没有办法告诉mapstruct,如果没有指定限定符,应该使用直接Map?或者创建一个我自己的方法,它接受string并返回它,然后告诉mapstruct默认情况下应该使用该方法?
1条答案
按热度按时间cwtwac6a1#
很可能是
toInternalCode
被所有方法使用,因为@CodeMapping
注解不是元注解@Qualifier
(来自org.mapstruct.Qualifier
).这个
@CodeMapping
应按以下方式定义: