Skip to content

MapStruct에 이런 기능이 있었는데 혹시 알고 계셨나요? (Enum to Enum Automatically) #63

Pinned Answered by wch-os
github-insu asked this question in Q&A
Discussion options

You must be logged in to vote

1) MapStruct 매핑

MapStruct는 기본적으로 타입과 변수명이 같은 경우 자동으로 매핑을 지원해주지만, 타입이 같지만 변수명이 다른 경우 아래와 같이 매핑할 수 있습니다

@Mapping(target = "boardName", source = "boardEntityName")
Board toBoard(BoardEntity boardEntity);
  • source: 원본 객체 필드 (BoardEntity)
  • target: 매핑될 객체 필드 (Board)

2) Enum 간의 매핑

위와 같이 @Mapping 어노테이션은 일반적인 객체 필드 간의 매핑은 가능하지만, Enum 간의 매핑에는 적용되지 않아 @ValueMapping 어노테이션을 사용할 수 있습니다.

cf. 이전에 bfdc4e5 서 언급주신@Named + qualifiedByName과, MapStruct 1.2(?) 버전부터 사용이 가능한 @EnumMapping을 이용한 매핑도 가능합니다.

@ValueMappings({
    @ValueMapping(source = "ENABLED", target = "ACTIVE"),
    @ValueMapping(source = "DISABLED", target = "INACTIVE"),
    @ValueMapping(source = "REMOVED", target = "DELETED")
})
BoardStatus toB…

Replies: 2 comments 1 reply

Comment options

You must be logged in to vote
1 reply
@silberbullet
Comment options

Answer selected by merge-simpson
Comment options

You must be logged in to vote
0 replies
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
Labels
None yet
3 participants