@InheritConfiguration
または @InheritInverseConfiguration
を使うことでマッピングを継承することができる。
環境
Mapperの作成
@Mapper public interface PersonMapper { PersonMapper MAPPER = Mappers.getMapper(PersonMapper.class); @Mapping(target = "emailAddress", source = "email") Person toPerson(PersonEntity entity); @InheritConfiguration Person toPersonInherit(PersonEntity entity); }
テストコード
@Test public void test() { PersonEntity entity = new PersonEntity(); entity.setEmail("hoge@example.com"); Person person = PersonMapper.MAPPER.toPersonInherit(entity); assertThat(person.getEmailAddress()).isEqualTo("hoge@example.com"); }
@InheritInverseConfiguration
を使うと、逆向きのマッピングができる。
@Mapper public interface PersonMapper { PersonMapper MAPPER = Mappers.getMapper(PersonMapper.class); @Mapping(target = "emailAddress", source = "email") Person toPerson(PersonEntity entity); @InheritInverseConfiguration PersonEntity toPersonInverse(Person person); }
継承したいマッピングと同様のマッピングが複数定義してある場合は name
にマッピングメソッド名を指定する。
@InheritInverseConfiguration(name = "toPerson") PersonEntity toPersonInverse(Person person);