[TIL] @Data vs @Getter, @Setter | Building Result란? | CreatedAt UpdatedAt null 해결

2024. 7. 31. 02:36·TIL

 

오늘의 목표 - My Select Shop 과제 완료하기

 

과제가 하루 밀려 여유가 더 생겼지만 오늘 안에 꼭! 끝내고 싶어서 완성하였다.

 

과제를 하면서 궁금했던 부분에 대해 정리해보려 한다.

 

 

@Data대신 @Getter @Setter를 쓰는 이유

 

강의 자료를 보면 모든 Dto가 @Getter와 @Setter를 사용한다.

 

여기서 의문이 들었던 점

@Data를 사용하면 @Getter와 @Setter의 기능을 모두 사용하면서 코드가 간결해지는데 왜 @Data를 사용하지 않는 걸까?

 

찾아보니, @Data는 @Getter @Setter 뿐만 아니라 @EqualsAndHashCode와 @RequiredArgsConstructor @ToString을 포함하고 있어서 지양하는 편이 좋다고 한다. 많은 기능을 한 번에 사용하는 만큼 사이드 이펙트도 무시할 수 없다.

(@EqualsAndHashCode는 equals와 hashcode 메서드를 자동 생성해 주는 어노테이션이다.)

 

아래 블로그에 잘 정리되어 있다

https://roopredev.tistory.com/14

 

 

BindingResult란?

 

스프링에서 제공하는 검증오류 보관 객체

검증할 필드가 있는 DTO에 @Valid를 붙여서 사용한다.

public String signup(@Valid SignupRequestDto requestDto, BindingResult bindingResult){
    // Validation 예외처리
    List<FieldError> fieldErrors = bindingResult.getFieldErrors();
    if(fieldErrors.size() > 0) {
        for (FieldError fieldError : bindingResult.getFieldErrors()) {
            log.error(fieldError.getField() + " 필드 : " + fieldError.getDefaultMessage());
        }
        return "redirect:/api/user/signup";
    }

    userService.signup(requestDto);

    return "redirect:/";
}

 

 

 

CreatedAt UpdatedAt null 오류 

 

다른 데이터는 잘 들어가는데 시간만 null이 들어갔다.

시간 자동 변경이 가능하도록 하는 어노테이션인 @EnableJpaAuditing을 application 클래스에 추가해서 해결했다.

 

 

'TIL' 카테고리의 다른 글

[TIL] Zipkin이란? | Redis란?  (0) 2024.08.06
[TIL] QueryDsl 사용방법  (0) 2024.08.06
[TIL] 인증과 인가 | 컨피그 서버 (Spring Cloud Config)  (0) 2024.08.02
[TIL] Java 형변환 | Integer.parseInt와 Integer.valueOf의 차이 | Math.sqrt()와 Math.pow() | 클라이언트 사이드 로드 밸런싱 | 서킷 브레이커 (Resilience4j) | Spring Cloud Gateway  (1) 2024.08.01
[TIL] MSA란? | Spring Cloud란?  (1) 2024.07.31
'TIL' 카테고리의 다른 글
  • [TIL] QueryDsl 사용방법
  • [TIL] 인증과 인가 | 컨피그 서버 (Spring Cloud Config)
  • [TIL] Java 형변환 | Integer.parseInt와 Integer.valueOf의 차이 | Math.sqrt()와 Math.pow() | 클라이언트 사이드 로드 밸런싱 | 서킷 브레이커 (Resilience4j) | Spring Cloud Gateway
  • [TIL] MSA란? | Spring Cloud란?
dev_ajrqkq
dev_ajrqkq
알고리즘 천재가 될 거야
  • dev_ajrqkq
    기록이 자산이다
    dev_ajrqkq
  • 전체
    오늘
    어제
    • 분류 전체보기 (147)
      • Front-end (0)
      • Back-end (11)
        • Spring (1)
        • Java (8)
      • CS (9)
        • 데이터베이스 (5)
        • 네트워크 (4)
      • Algorithm (80)
      • 이것저것 (0)
      • 버그잡기 (1)
      • TIL (37)
      • 후기 (1)
      • 취준 (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      코딩테스트준비
      Til
      개발자취업
      항해99
      99클럽
      오블완
      티스토리챌린지
      TypeScript
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    dev_ajrqkq
    [TIL] @Data vs @Getter, @Setter | Building Result란? | CreatedAt UpdatedAt null 해결
    상단으로

    티스토리툴바