자바/mapstruct
-
[MapStruct] Enum과 Integer 간에 매핑 설정 방법자바/mapstruct 2021. 1. 16. 02:22
이번 시간에는 MapStruct를 이용하여 Mapper 생성 시 Enum과 Integer간에 매핑하는 방법에 대해서 알아보도록 하겠습니다. 우선 다음과 같이 01은 MALE을 뜻하고 02는 FEMAIL을 뜻하는 Enum이 존재합니다. 클라이언트로부터 성별의 값으로 01, 02의 Integer 값을 수신하므로 그 뜻을 좀더 명확하게 표현하기 위해서 Enum을 생성합니다. public enum Gender { MALE(01), FEMALE(02), ; private Integer value; private static Map map = new HashMap(); Gender(Integer value) { this.value = value; } static { for (Gender gender : Gender..
-
[MapStruct] 중첩된 빈 프로퍼티를 현재 타겟에 매핑시키기자바/mapstruct 2020. 12. 1. 14:34
중첩된 소스 객체의 모든 프로퍼티들에 대해서 명시적으로 선언하기를 원하지 않으면, target 파라미터에 "."를 사용할 수 있습니다. "."는 MapStruct로 하여금 소스 객체의 모든 프로퍼티들에 대해서 타겟 객체에 매핑될 수 있게 지원합니다. 해당 기능은 MapStruct 1.4.1에서부터 지원됩니다. @Getter @NoArgsConstructor @JsonInclude(JsonInclude.Include.NON_EMPTY) public class CustomerDto { private Long id; private Record record; private Account account; @Builder public CustomerDto(Long id, Record record, Account a..
-
[MapStruct] 기본 매핑자바/mapstruct 2020. 11. 26. 00:42
간단하게 Mapper를 생성하는 방법은 필요한 매핑 함수를 가진 자바 인터페이스를 정의하고, org.mapstruct.Mapper 어노테이션을 붙이면 됩니다. @Mapper public interface CarMapper { @Mapping(source = "make", target = "manufacturer") @Mapping(source = "numberOfSeats", target = "seatCount") CarDto carToCarDto(Car car); @Mapping(source = "name", target = "fullName") PersonDto personToPersonDto(Person person); } @Mapper 어노테이션은 MapStruct의 code generator를 ..
-
[MapStruct] 여러 개의 소스 파라미터를 가지는 매핑 함수자바/mapstruct 2020. 11. 23. 23:40
MapStruct는 또한 여러 개의 소스 Parameter(person, address)를 가지는 매핑 함수를 제공합니다. 여러 개의 Entity들을 하나의 DTO로 합치는데 유용합니다. @Mapper public interface AddressMapper { @Mapping(source = "person.description", target = "description") @Mapping(source = "address.houseNo", target = "houseNumber") DeliveryAddressDto personAndAddressToDeliveryAddressDto(Person person, Address address); } 보여지는 매핑 함수는 2개의 소스 Parameter(Person,..