반응형
@Mapping 어노테이션은 MapStruct를 사용하여 자동으로 DTO와 Entity 객체를 매핑해 줄 때 사용되는 어노테이션 중 하나입니다.
@Mapping은 각 매핑 대상에 대한 정보를 제공하여 매핑 프로세스를 구성하며 다음과 같은 속성을 갖습니다.
- source : 매핑되는 객체에서 가져올 속성 이름입니다.
- target : 매핑 대상 객체의 속성 이름입니다.
- dateFormat : 날짜 형식을 변경하는 데 사용됩니다.
- qualifiedByName : 매핑에 사용할 메소드 이름을 지정합니다.
- ignore : 매핑을 무시합니다.
- defaultValue : 매핑 대상 객체의 속성 값이 null일 때 기본값을 설정합니다.
예를 들어, 다음과 같은 객체가 있다고 가정해 봅시다.
public class SourceObject {
private Long id;
private String name;
private int age;
}
public class TargetObject {
private Long id;
private String username;
private int userAge;
}
위에서 선언한 SourceObject와 TargetObject의 필드 중 일부가 이름이 다르기 때문에,
MapStruct를 사용하여 이를 매핑하려면 다음과 같은 어노테이션을 사용할 수 있습니다.
@Mapper
public interface ObjectMapper {
@Mapping(source = "id", target = "id")
@Mapping(source = "name", target = "username")
@Mapping(source = "age", target = "userAge")
TargetObject mapToTargetObject(SourceObject source);
}
위의 예제에서 @Mapping 어노테이션은 SourceObject와 TargetObject의 필드 간 매핑을 수행하는 데 사용됩니다.
source는 매핑할 소스 객체의 필드 이름을 지정하고, target은 매핑될 대상 객체의 필드 이름을 지정합니다.
또한 @Mapping 어노테이션을 사용하여 객체 간의 매핑 시, 다른 이름을 가진 필드를 매핑할 수 있습니다.
이를 위해서는 source와 target에 해당하는 필드 이름을 각각 지정해 주면 됩니다.
반응형
'Spring' 카테고리의 다른 글
Java Spring _ MockMvc를 사용한 API 테스트 (0) | 2023.03.06 |
---|---|
Java Spring_@Builder (0) | 2023.03.05 |
Java Spring JPA (Cascade vs EntityManager.persist()) (0) | 2023.03.05 |
Spring Framework_ApplicationEventPublisher,@EventListener (0) | 2023.03.03 |
Spring을 이용해 이메일 보내는 방법 (0) | 2023.03.02 |