본문 바로가기
웹 개발/Back End

@Mapper 사용법(Dto -> 엔티티 매핑)

by L3m0n S0ju 2024. 9. 9.

 

 

@Mapper는 어떻게 사용하는 어노테이션일까? 

 

 

@Mapper(config = MapstructMapperConfig.class)
public interface UserMapper {

    UserMapper INSTANCE = Mappers.getMapper(UserMapper.class);

    UserMain to(UserModifyDto.ModifyPasswordByKmcDi modifyPasswordByKmcDiDto);

    UserMain to(UserAwakenDto.Request request, UserStatus userStatus);

    UserMain to(UserPaymentRegisterDto.Request request, Long userNo);

}

 

@Mapper 어노테이션은 객체 간의 자동 변환을 해주는 역할을 합니다. 예를 들어 아래와 같은 코드가 있을 때 UserMain 에 존재하는 필드와 이름이 일치하는 modifyPasswordByKmcDiDto 필드 값을 매칭시켜줍니다.

 

UserMain to(UserModifyDto.ModifyPasswordByKmcDi modifyPasswordByKmcDiDto);

 

 

 

ex) 사용법 예시

UserMain updatedUserMain = UserMapper.INSTANCE.to(modifyMobileAndUsernameRequest, SecurityUtil.getCustomUserDetails().getUserNo());

 

 

 

만약 다른 이름의 필드를 매칭 시키려면 아래와 같이 코드를 작성하면 됩니다.

    @Mapping(source = "subUserNo", target = "userNo")
    UserMain to(UserModifyDto.ModifyUserStatus modifyUserStatusDto);

댓글