The following mapper:
@Mapper
public interface TestMapper {
class Tenant {
public String id;
}
class Inner {
public String id;
}
class TenantDTO {
public Inner inner;
}
@Mapping(target="id", source = "inner.id", defaultValue = "test")
Tenant map(TenantDTO tenant);
}
We generate the following code:
if ( tenantInnerId( tenant ) != null ) {
tenant1.id = tenantInnerId( tenant );
}
else {
tenant1.id = "";
}
We should instead generate:
String id = tenantInnerId( tenant );
if ( id != null ) {
tenant1.id = id;
}
else {
tenant1.id = "";
}
Note if we use nullValueCheckStrategy = NullValueCheckStrategy.ALWAYS then the correct code is generated.