У меня есть несколько полей Boolean
в моём классе модели (источник).Поле назначения в моем классе DTO - String
.Мне нужно сопоставить true
как Y
и false
как N
.Имеется более 20 Boolean
полей, и сейчас я использую аннотацию 20+ @Mapping
с опцией expression
, которая является дополнительной.Должен быть простой способ или решение, которого я не знаю.Кто-нибудь может помочь упростить это?
Я использую mapstruct
версия 1.2.0.Final
Source.java
class Source{
private Boolean isNew;
private Boolean anyRestriction;
// several Boolean fields
}
Target.java
class Target{
private String isNew;
private String anyRestriction;
}
Helper.java
class Helper{
public String asString(Boolean b){
return b==null ? "N" : (b ? "Y" : "N");
}
}
MyMapper.java
@Mapper interface MyMapper{
@Mappings(
@Mapping(target="isNew", expression="java(Helper.asString(s.isNew()))"
// 20+ mapping like above, any simple way ?
)
Target map(Source s);
}