{"id":1603,"date":"2021-01-25T16:43:26","date_gmt":"2021-01-25T07:43:26","guid":{"rendered":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=1603"},"modified":"2022-11-18T14:28:40","modified_gmt":"2022-11-18T05:28:40","slug":"mapstruct-%ec%82%ac%ec%9a%a9%ed%95%98%ea%b8%b0-%ea%b3%a0%ea%b8%89","status":"publish","type":"post","link":"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=1603","title":{"rendered":"MapStruct \uc0ac\uc6a9\ud558\uae30 \uace0\uae09"},"content":{"rendered":"<h1>MapStruct \uc0ac\uc6a9\ud558\uae30 \uace0\uae09<\/h1>\n<h2>DTO \u2013 Entity \uc900\ube44<\/h2>\n<pre><code class=\"language-java\">@Setter\n@Getter\n@NoArgsConstructor\n@Entity\npublic class TestBrands {\n    private String brandId;\n    private String partnerId;\n    private String brandName;\n    private String useyn = &quot;Y&quot;;\n\n    private String partnerId2;\n}<\/code><\/pre>\n<pre><code class=\"language-java\">@Getter\n@Setter\n@NoArgsConstructor\npublic class TestBrandsDto {\n    private String brandId;\n    private String partnerId;\n    private String brandName;\n    private String useyn;\n\n    private String brandName2;\n}<\/code><\/pre>\n<p>\uc2a4\ud504\ub9c1\uacfc mapstruct \uc744 \uc0ac\uc6a9\ud560 \uacbd\uc6b0 <code>componentModel = &quot;spring&quot;<\/code> \uc744<br \/>\n\ubc18\ub4dc\uc2dc \ubd99\uc5ec\uc8fc\uc5b4\uc57c \uc624\ub958\uac00 \ubc1c\uc0dd\ud558\uc9c0 \uc54a\ub294\ub2e4.<\/p>\n<pre><code class=\"language-java\">@Mapper(componentModel = &quot;spring&quot;)\npublic interface TestBrandsMapper {\n\n    TestBrands toEntity(TestBrandsDto dto);\n    TestBrandsDto toDto(TestBrands entity);\n}<\/code><\/pre>\n<h2>\uc77c\uce58\ud558\uc9c0 \uc54a\ub294 \ud544\ub4dc \ubb34\uc2dc\ud558\uae30<\/h2>\n<p><code>ReportingPolicy.IGNORE<\/code> \ub97c \uc124\uc815\ud574\uc11c \uc77c\uce58\ud558\uc9c0 \uc54a\ub294 \ud544\ub4dc\ub97c \ubb34\uc2dc\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-java\">@Mapper(componentModel = &quot;spring&quot;, unmappedTargetPolicy = ReportingPolicy.IGNORE)\npublic interface TestBrandsMapper {\n\n    TestBrands toEntity(TestBrandsDto dto);\n    TestBrandsDto toDto(TestBrands entity);\n}<\/code><\/pre>\n<p>\ubb34\uc2dc\ud560 \ud544\ub4dc\ub97c \uba85\uc2dc\ud560 \uc218 \uc788\ub2e4.<\/p>\n<pre><code class=\"language-java\">@Mapper(componentModel = &quot;spring&quot;)\npublic interface TestBrandsMapper {\n\n    @Mapping(target = &quot;partnerId2&quot;, ignore = true)\n    @Mapping(target = &quot;useyn&quot;, ignore = true)\n    TestBrands toEntity(TestBrandsDto dto);\n\n    @Mapping(target = &quot;brandName2&quot;, ignore = true)\n    @Mapping(target = &quot;useyn&quot;, ignore = true)\n    TestBrandsDto toDto(TestBrands entity);\n}<\/code><\/pre>\n<h2>\uc77c\uce58\ud558\uc9c0 \uc54a\ub294 \ud544\ub4dc\ub97c \uc218\ub3d9\uc73c\ub85c \ub9e4\ud551<\/h2>\n<pre><code class=\"language-java\">@Mapper(componentModel = &quot;spring&quot;)\npublic interface TestBrandsMapper {\n\n    @Mapping(source = &quot;partnerId&quot;, target = &quot;partnerId2&quot;)\n    @Mapping(target = &quot;useyn&quot;, ignore = true)\n    TestBrands toEntity(TestBrandsDto dto);\n\n    @Mapping(source = &quot;brandName&quot;, target = &quot;brandName2&quot;)\n    @Mapping(target = &quot;useyn&quot;, ignore = true)\n    TestBrandsDto toDto(TestBrands entity);\n}<\/code><\/pre>\n<h2>\uc0c1\uc18d\ubc1b\uc740 \ud074\ub798\uc2a4 \ub9e4\ud551<\/h2>\n<p><code>@SuperBuilder<\/code> \ub97c \ubd99\uc5ec\uc900\ub2e4.<\/p>\n<pre><code class=\"language-java\">@Getter\n@SuperBuilder\nclass BaseDto {\n  private Long id;\n}\n\n@SuperBuilder\n@Getter\n@ToString\npublic class UserDto extends BaseDto {\n  private String name;\n  private String lastName;\n  private String username;\n  private String password;\n  private String profilePicturePath;\n}<\/code><\/pre>\n<h2>Embedded class \ub97c \ucabc\uac1c\uc11c \ub9e4\ud551\ud558\uace0 \uc2f6\uc744 \ub54c<\/h2>\n<p>Embedded class \uc758 \ubcc0\uc218\uba85\uacfc \uc810\uc744 \ubd99\uc5ec\uc900\ub2e4.<\/p>\n<pre><code class=\"language-java\">@Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, componentModel = &quot;spring&quot;)\npublic interface ItemOptionToSearchServiceConverter {\n\n    @Mapping(source = &quot;id.itemId&quot;, target = &quot;itemId&quot;)\n    @Mapping(source = &quot;id.itemOption&quot;, target = &quot;itemOption&quot;)\n    @Mapping(target = &quot;id&quot;, ignore = true)\n    SearchItemOptionEntity convert(SrcItemOptionEntity srcItemOptionEntity);\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>MapStruct \uc0ac\uc6a9\ud558\uae30 \uace0\uae09 DTO \u2013 Entity \uc900\ube44 @Setter @Getter @NoArgsConstructor @Entity public class TestBrands { private String brandId; private String partnerId; private String brandName; private String useyn = &quot;Y&quot;; private String partnerId2; } @Getter @Setter @NoArgsConstructor public class TestBrandsDto { private String brandId; private String partnerId; private String brandName; private String useyn; private String brandName2;\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.skyer9.pe.kr\/wordpress\/?p=1603\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[],"class_list":["post-1603","post","type-post","status-publish","format-standard","hentry","category-java"],"_links":{"self":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1603","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1603"}],"version-history":[{"count":5,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1603\/revisions"}],"predecessor-version":[{"id":7035,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/1603\/revisions\/7035"}],"wp:attachment":[{"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1603"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1603"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.skyer9.pe.kr\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1603"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}