• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@Data 는 사용하기 위험하다고 말씀하셔서 질문합니다!

21.04.10 06:36 작성 조회수 392

3

@Data 애노테이션이 생성되는 것이

이 클래스에서 @Getter, @Setter를 빼면

@RequiredArgsConstructor와 @ToString @EqualsAndHashCode로 보이는데 이것들이 자동으로 생겨나서 위험한 게 있을까요?

@Setter랑 생성자만 주의하면 안되나요?

답변 2

·

답변을 작성해보세요.

0

지현명님의 프로필

지현명

2021.07.12

강사님 이 부분이 혹시 JPA를 사용 할때 모델에만 적용되는 내용일까요?  MyBatis를 사용 할 때는 그냥 @Data를 써도 되는 건가요?

안녕하세요. 지현명님

프레임워크와 무관하게 모두 주의해야 합니다. 양방향으로 참조하면 무한루프에 빠질 수 있습니다.

감사합니다.

0

안녕하세요. 진규님

lombok은 애노테이션은 기본으로 모든 필드로 코드를 생성합니다.

그래서 @ToString의 경우 객체의 양방향 연관관계(a -> b, b ->a)가 있을 때 무한 루프로 호출될 수 있습니다.

Equals와 hashCode도 모든 필드를 다 기준으로 잡기 때문의 주의해야 합니다.

감사합니다.

그렇군요! 감사합니다!