N+1 Select

A collection of 5 posts

N+1 Select

[하이버네이트 N+1 Select] Runtime Eager Fetching으로 해결하기

이전에 살펴본 방법은 Egaer Fetching 옵션을 매핑에 설정해두고 사용하는 방법이었는데, 그 방법 보다 좀 더 유연하게 해당 DAO 오퍼레이션을 수행할 때 FetchMode를 설정해서 사용하는 방법이 있다. Criteria를 사용하는 경우 [java] @Test public void eagerFetchingByCriteria(){ int mostItemCount = 0; Member mostItemOwner = null; List<Member>

Eager Fetching

[하이버네이트 N+1 Select] Eager Fetching으로 해결하기

이 방법도 역시 간단하다. 지난번까지 사용했었던 배치 패칭 설정은 지우고 다음과 같이 설정한다. @OneToMany(mappedBy=”owner”, fetch=FetchType.EAGER) @BatchSize(size=30) private Set items; 이렇게 설정하면 Member 클래스를 Criteria나 Session.get(), load()로 읽어올 때 C도 같이 로딩해온다. 그래서 eager다. Lazy

HQL Aggregation

[하이버네이트 N+1 Select] HQL Aggregation으로 해결하기

HQL이나 JPQL을 사용하면 SQL 못지않게 여러 잡다한 기능을 활용할 수 있는데, 그런 잡다한 기능 줄 일부를 이용해서 N+1 Select 발생을 원천봉쇄할 수 있는 경우도 있습니다. 지금 해결하려는 N+1 Select 문제가 바로 그런 경우중 하나인데, 하려는게 무엇인지 파악해보면 매우 단순합니다. 그냥 item을 제일

You've successfully subscribed to Whiteship!
Could not sign up! Invalid sign up link.