fetch

· JPA
사이드 프로젝트 진행 중에 JPA의 N+1 문제가 발생하였다. 매장 목록 조회 시 매장에 등록된 해쉬태그를 가져오기 위해 일대다 관계를 맺고 있는데 이것 때문에 데이터당 한번씩 더 조회가 되고 있었다. @ManyToMany(fetch = FetchType.EAGER, cascade = { CascadeType.PERSIST, CascadeType.REMOVE }) @JoinTable(name = "tag_of_store", joinColumns = @JoinColumn(name = "store_id"), inverseJoinColumns = @JoinColumn(name = "store_tag_id")) private Set tags; 지금은 데이터가 적어서 문제가 안되지만 데이터 100개를 조회한다면 ..
· JPA
페치 조인은 SQL에서 이야기하는 조인의 종류는 아니고 JPQL에서 성능 쵝적화를 위해 제공하는 기능이다. 연관덴 엔티티나 컬렉션을 한번에 조회하는 기능인데 join fetch 명령어로 사용할 수 있다. JPQL이 무엇인지 모르겠다면 아래 블로그 글을 참고 바란다. 객체 지향 쿼리 소개(JPQL, Criteria, Native, QueryDSL) JPA를 사용하면 EntityManager.find(), 객체 그래프 탐색(member.getTeam())과 같은 기능만으로 개발하기는 어렵다. 그리고 데이터베이스 테이블이 아닌 엔티티 객체를 대상으로 개발하므로 엔티티 객체를 devbksheen.tistory.com 엔티티 페치 조인 JPQL에서는 조인은 별칭을 사용할 수 없지만 하이버네이트는 별칭은 허용한다...
beekei
'fetch' 태그의 글 목록