Backend/JPA

    JPA 데이터 뻥튀기 문제 알아보기

    들어가며 프로젝트를 진행하던 도중 의도와는 다른 개수의 엔티티가 조회되는 흔히 "데이터 뻥튀기"라고 불리는 문제가 발생하였다. 해당 문제가 무엇이고, 왜 발생하는지, 그리고 어떻게 해결할 수 있는지에 대해 알아보도록 하자. 일단 문제가 발생한 엔티티 간의 연관관계를 간단히 나타내보면 다음과 같다. 모든 연관관계가 1 : N 이라는 것을 알 수 있다. 여기서 하나의 Task가 여러 개의 Comment를 가질 수 있다는 점을 주목하고 넘어가도록 하자. 그러면 이제 문제의 상황을 만들어보도록 하겠다. 엔티티 구현 먼저 데이터 뻥튀기 문제에서 사용할 엔티티는 다음과 같다. // User.java @Getter @NoArgsConstructor @Entity public class User { @Id @Gener..