객체들의 프로퍼티를 복사해주는 유틸리티이다.
ModelMapper를 통해 이런 부분들을 간단하게 바꿔줄 수 있다.
ModelMapper를 사용하려면 아래의 의존성을 추가해줘야한다.
<dependency>
<groupId>org.modelmapper</groupId>
<artifactId>modelmapper</artifactId>
<version>2.3.6</version>
</dependency>
그 후 적용하기 위해 Bean으로 등록해야한다.
ModelMapper의 map이라는 메서드를 사용해서 source의 데이터를 destination로 복사해준다.(단 source와 destination에서 동일한 이름을 가진 프로퍼티를 통해 서로 매칭이 되도록 해야한다.)
modelMapper.map(source, dest)
이때 주의할 점이 있다.
studyCreatedByEmail()과 같이 복잡한 이름을 가진 프로퍼티가 있는 경우, ModelMapper가 제대로 매칭되는 프로퍼티를 찾지 못하는 경우가 있어 에러가 날 수가 있다. 따라서 설정을 해줘야한다.
이렇게 해주면 ModelMapper가 UNDERSCORE가 아닌 이상 하나의 프로퍼티로 생각하게 된다.