Spring JPA 순환참조 해결

하스레·2022년 7월 6일
0

JPA 양방향 순환참조 해결을 위한 방법은 다음 세가지가 있다.

1. @JsonManagedReference & @JsonBackReference 어노테이션 사용

원래 이 방법을 사용했으나, 연관관계 주인 반대 엔티티에@JsonManagedReference를 선언하여 직렬화되는 방향만 가능(다대일의 경우)하여 바꾸는 것이 낫다고 판단했다.

2. @JsonIgnore

한 엔티티의 참조 필드에 직렬화를 해제하는 방법으로, 해당 필드가 직렬화에 필요할 경우에는 적절하지 않다.

3. Entity 대신 DTO를 반환

Entity 클래스는 데이터베이스와 맞닿아 있고, 이를 기준으로 수많은 클래스나 비즈니스 로직들이 동작한다. Entity 클래스를 통해 여러 클래스들이 영향을 받을 수 있으므로 Entity 클래스를 Request/Response 클래스로 사용하는 것은 지양하는 게 좋다. 컨트롤러에서 Response 값으로 여러 테이블을 조인해야하는 경우가 많으므로, 반환 DTO를 사용하여 DB Layer 와 View Layer 의 역할 분리를 철저하게 해주는 것이 좋다.


https://data-make.tistory.com/727
https://k3068.tistory.com/m/32?category=919284
https://yeon-kr.tistory.com/170

profile
Software Developer

0개의 댓글