Expected behavior
Inverse Configuration is autmatically generated.
Actual behavior
@Mappings have to be defined twice
Steps to reproduce the problem
Setup
@Mapper(config = FooBarConfig.class)
public interface FooBarMapper {
Bar toBar(Foo foo);
Foo toFoo(Bar bar);
}
@Data
class Foo { int secret; }
@Data
class Bar { int secret; }
@MapperConfig(mappingInheritanceStrategy = MappingInheritanceStrategy.AUTO_INHERIT_ALL_FROM_CONFIG)
interface FooBarConfig {
@Mapping(target = "secret", ignore = true)
Bar toBar(Foo foo);
@InheritInverseConfiguration(name = "toBar")
Foo toFoo(Bar bar);
}
Generated
public class FooBarMapperImpl implements FooBarMapper {
@Override
public Bar toBar(Foo foo) {
if ( foo == null ) {
return null;
}
Bar bar = new Bar();
return bar;
}
@Override
public Foo toFoo(Bar bar) {
if ( bar == null ) {
return null;
}
Foo foo = new Foo();
foo.setSecret( bar.getSecret() );
return foo;
}
}
Only way to get it working
@MapperConfig(mappingInheritanceStrategy = MappingInheritanceStrategy.AUTO_INHERIT_FROM_CONFIG)
interface FooBarConfig {
@Mapping(target = "secret", ignore = true)
Bar toBar(Foo foo);
@Mapping(target = "secret", ignore = true)
Foo toFoo(Bar bar);
}
MapStruct Version
1.5.5
Expected behavior
Inverse Configuration is autmatically generated.
Actual behavior
@Mappingshave to be defined twiceSteps to reproduce the problem
Setup
Generated
Only way to get it working
MapStruct Version
1.5.5