그룹 생성

@NoArgsConstructor
@RequiredArgsConstructor
@AllArgsConstructor
@Builder
@Getter, @Setter
@EqualsAndHashCode
@ToString
@Data
@Table
@Entity, @Controller, @Service ...

08162021

배운거

  1. Mapstruct 사용(entity to DTO)
    1. entity와 그의 DTO를 생성한다.

    2. 아래와 같이 매퍼 인터페이스를 만든다.

      @Mapper
      public interface GroupMapper {
      
        // INSTANCE로 이름 짓는 건 컨벤션이라고 한다.
        GroupMapper INSTANCE = Mappers.getMapper(GroupMapper.class);
      
        // 엔티티와 DTO에 변수 명이 다를 경우 속성을 넣어준다. source = parameter, target = return
        Group groupDtoToGroup(GroupDTO groupDto);
      }
      
    3. 매퍼를 쓴다.

      @Test
      public void map() {
        GroupDTO groupDTO = new GroupDTO("name", "description");
      
        Group group = GroupMapper.INSTANCE.groupDtoToGroup(Group);
      
        assertThat(group).isNotNull;
        assertThat(group.getName()).isEqualTo("name");
      }
      

오늘의 삽질

  1. 그룹 생성 인수테스트를 만들고 필요한 그룹엔티티, 레파지토리, 컨트롤러까지 만든 후 테스트를 실행시켰더니 에러가 떴다.

    Error executing DDL "대충 테이블 생성 쿼리문"
    

    검색해보다가 엔티티명으로 만든 Group이 SQL 예약어인 걸 알게됐다. @Table의 name 속성을 이용해 테이블 이름을 바꿔주어야 한다.