반응형

mapper

    MapStruct의 mapping방식과 Lobmok 함께 사용 시 값이 mapping되지 않는 이유

    저번에 작성했던 MapStruct를 사용하면서 겪은 이야기를 정리해본다. MapStruct를 사용하면 값을 매핑해야하는 여러 경우에서 편리하게 값을 매핑할 수 있다. 특히 Entity값을 외부로 내보내려고 값객체에 값을 저장할 때 유용하게 사용된다. 객체 생성 및 값 주입 방법 기본적으로 MapStruct에 경우 setter, constructor, builder를 사용하여 객체를 생성하고 값을 넣는다. 먼저 setter를 사용하는 경우를 살펴보자. 1. setter package com.wedul.mapstructtest.entity; import lombok.Builder; import lombok.Getter; import java.util.List; @Getter public class Accou..

    Mapstruct 사용 시 collection 내부에 이름이 다른경우

    Mapstruct를 통해 편하게 응답값을 매핑할 수 있도록 도와주는 라이브러리를 살펴본적 있다. https://wedul.site/703 만들면서 배우는 아키텍처 그리고 매핑 프레임워크 MapStruct를 사용한 매핑 만들면서 배우는 아키텍처 (Get Your Hands Dirty on Clean Architecture) 요새 읽던 책중에 'Get Your Hands Dirty on Clean Architecture' 책이 인상 깊었다. 원서로 팀원들과 스터디 하고 나서 인상깊어서 '만들면서 배 wedul.site 값을 매핑할 때 필드의 이름이 다를 경우에는 아래 처럼 Mapping애노테이션을 사용해서 source, target에 이름을 명시하여 이를 해결 할 수 있었다. @Mapping(source =..

    만들면서 배우는 아키텍처 그리고 매핑 프레임워크 MapStruct를 사용한 매핑

    만들면서 배우는 아키텍처 (Get Your Hands Dirty on Clean Architecture) 요새 읽던 책중에 'Get Your Hands Dirty on Clean Architecture' 책이 인상 깊었다. 원서로 팀원들과 스터디 하고 나서 인상깊어서 '만들면서 배우는 아키텍처'라는 번역으로 다시 한번 봤다. 원서는 구어체로 되어있어 내용은 좋았지만 친절하지 못한 느낌이었다면 번역본은 깔끔하게 정리되어있어서 너무 맘에 들었다. 인상깊었던 몇 부분을 정리하면 첫번째로 육각형 아키텍처에서 포트-어댑터 패턴을 사용하여 호출 당하는쪽은 호출하는쪽을 몰라도 되고 port interface로 통신하는 부분이 인상 깊었고 interface가 만드는쪽에서만 명세(설계도)를 알 수 있다는 장점만을 생각했..

    JPA(Java Persistence Api)의 장점과 단점 및 사용해야 하는 이유.

    국내에서는 Mybatis를 사용하지만 대기업과 여러 스타트업에서는 JPA를 사용하고 있는 추세이다. 그리고 세계적으로 JPA 특히 ORM 프레임워크인 하이버네이트 사용률이 더 높다.그래서 더 자세한 부분을 이해하기 위해서 공부를 시작했다. 공부 시작하기전에 왜 JPA가 좋은지 정리해봤다. 생산성- 개발자가 일일히 CRUD용 쿼리를 작성해줘야하던 Mybatis와 같은 Mapper방식은 컬럼이 추가되거나하면 수정해주어야하는 부분이 상당히 많았다. 이로 인해서 자바를 사용하지만 객체중심 개발이 아니라 데이터베이스 흐름으로 개발을 하게되는 문제가 있다. JPA를 사용하게 되면 쿼리를 직적 생성하는 것이 아니고 만들어진 객체로 데이터베이스를 다루기 때문에 객체 중심으로 개발을 진행할 수 있다. 유지보수- SQL을..

    스프링 프레임워크의 기본적인 구성

    1. VO 객체 -> 데이터를 담을 객체를 생성 public class BoardVO { private Integer bno; private String title; private String content; private String writer; private Date regdate; private int viewcnt; public Integer getBno() { return bno; } public void setBno(Integer bno) { this.bno = bno; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getCont..

    typeAliases 사용방법

    XML Mapper를 이용하는 데 있어 매번 parameterType이나 resultType을 패키지까지 포함된 클래스명을 작성하는 일이 번거롭다면 Mybatis의 설정 파일 mybatis-config.xml을 사용해서 typeAliases를지정해주면 된다. typeAliases는 하위 요소로 package와 typeAlias 요소를 가질 수 있다. 이 방법을 이용하면 매번 parameterType이나 resultType에 사용하는 클래스의 이름을 지정해줄 필요가 없다. 그렇게 되면 Mapper xml 에서 더 이상 resultType, marameterType에 긴 패키지명을 포함할 필요가 없다. 클래스명만 입력하면 된다.기존의 mapper파일에서 resultType을 설정할때 길게 입력하였다.다음과 ..

반응형