SMALL
참고해주세요!
데이터 베이스에 데이터가 여러개 있을 때
양방향 조인을 하기 위해서 user 테이블에 있는 컬렉션에도 @OneToMany annotation을 붙여줍니다.
여기서 @OneToMany annotation에 mappedBy 는 foreign 키의 주인이 아니라는 뜻 입니다.
이런 상황에서 브라우저에서 전체 데이터에 대해서 접근을 한다면
이렇게 조인을 잘 해서 출력해줌
하지만 아이디를 통해서 찾으려고 하면
서로 양쪽에서 조인하기 때문에 무한 조인이 됩니다.
post에서 user 변수 값을 가져오기 위해 조인된 user 모델에서 데이터를 가져오려고 하면 post 컬랙션 정보를 또 가져오기 위해 post 모델로 가게되는 무한루프에 빠지게 됩니다.
@JsonIgnoreProperties annotation을 붙여 무한 조인을 멈춰줍니다.
@JsonIgnoreProperties annotation({"user"}) 를 하면 post 테이블에 있는 user는 조인 시 파싱하지 말라는 뜻이 됩니다.
이렇게 되면 무한 조인을 멈출 수 있습니다.
제대로 나오는 것을 볼 수 있습니다.
728x90
LIST
'웹개발 > Springboot' 카테고리의 다른 글
ORM / 양방향 매핑 원리 (0) | 2021.07.17 |
---|---|
DB 데이터 활용하기 - jpa 테이블 join (0) | 2021.07.04 |
DB 데이터 활용하기 - 테이블 join (0) | 2021.07.03 |
댓글