N+1(2)
-
[JPA] N+1 문제? 이렇게 많은 쿼리문이 수행될 줄 몰랐지
N+1 문제에 대해 알지 못했을 때, 한 번의 작업으로 필요 이상의 쿼리문을 작성하는 문제에 대해 인지하지 못하고 있었다. JPA를 다루며 수많은 문제에 직면했고, 조금씩 에러를 해결해 나가면서 N+1 문제를 알게 되자 이번에 처음으로 콘솔 창이 보여준 수많은 쿼리문을 보게 됐다. List p=new ArrayList(); p=this.planService.allUserPlan();@Override public List allUserPlan() { return this.planRepo.findAll(); } DB에 저장된 모든 계획을 가져오기 위해 findAll() 을 이용했다. 그러자.Hibernate: select planvo0_.plan_no as plan_no1_10_, plan..
2024.06.21 -
[JPA] FetchType.EAGER의 남용과 순환 참조 그리고 N+1
# N+1 문제에 대한 해결방안을 다룬 글이 아닙니다. FetchType.EAGER를 남용했다. @OneToMany @ManyToOne 관계를 지정할 때도, 하나의 엔티티 클래스 안에서 EAGER 속성을 여러 번 사용하는 등. 서버 실행 자체가 되지 않는 문제가 발생했다. 단순히 문제를 해결하기 위해 방법을 찾아나섰고 public class MemberVO { @Id private String member_id; @OneToOne(cascade=CascadeType.ALL, fetch=FetchType.LAZY) @JoinColumn(name="chat_no") private ChatVO chatVO; @OneToMany(mappedBy = "memberVO",cascade=Casc..
2024.06.20