인프런 커뮤니티 질문&답변

제이크서님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

상품 도메인 개발

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

작성

·

488

3

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

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

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

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

답변 2

0

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

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 지현명님

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

감사합니다.

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 진규님

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

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

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

감사합니다.

제이크서님의 프로필 이미지
제이크서
질문자

그렇군요! 감사합니다!