マッピングする値がnullの場合のデフォルト値と定数の設定ができる。
環境
Mapperの作成
デフォルト値は defaultValu
, 定数は constant
に指定する。
@Mapper public interface DefaultConstantsMapper { DefaultConstantsMapper MAPPER = Mappers.getMapper(DefaultConstantsMapper.class); @Mapping(target = "name", defaultValue = "zagas") @Mapping(target = "address", constant = "SPOKEN") Student toStudent(StudentEntity entity); }
生成されたコード
/* @Generated( value = "org.mapstruct.ap.MappingProcessor", date = "2018-03-18T22:44:14+0900", comments = "version: 1.2.0.Final, compiler: javac, environment: Java 9.0.1 (Oracle Corporation)" ) */ public class DefaultConstantsMapperImpl implements DefaultConstantsMapper { @Override public Student toStudent(StudentEntity entity) { if ( entity == null ) { return null; } Student student = new Student(); if ( entity.getName() != null ) { student.setName( entity.getName() ); } else { student.setName( "zagas" ); } student.setAge( entity.getAge() ); student.setAddress( "SPOKEN" ); return student; } }
テストコード
@Test public void test() { StudentEntity entity = new StudentEntity(); Student student = DefaultConstantsMapper.MAPPER.toStudent(entity); assertThat(student.getName()).isEqualTo("zagas"); assertThat(student.getAddress()).isEqualTo("SPOKEN"); }