Search
β˜•

JPQL μ£Όμ˜μ‚¬ν•­

β€’
to-many 관계
β—¦
fetch join μ§€μ–‘
β–ͺ
쿼리의 개수λ₯Ό 쀄이기 μœ„ν•΄ one-to-many κ΄€κ³„μ—μ„œ fetch join 을 ν•˜μ˜€λ‹€.
β–ͺ
many 의 개수만큼 μ€‘λ³΅λœ 데이터가 λ°œμƒν•˜μ—¬ 였히렀 μ„±λŠ₯이 μ•ˆμ’‹μ•„μ‘Œλ‹€.
β–ͺ
차라리 쿼리 1κ°œκ°€ 더 λ‚˜κ°€λ”λΌλ„ join 을 κ±Έμ§€ μ•ŠλŠ”κ²Œ μ„±λŠ₯상 μ’‹μ•˜λ‹€.
β—¦
fetch type=EAGER
β–ͺ
단건 μ‘°νšŒμ‹œ left outer join
β€’
쀑볡 λ ˆμ½”λ“œ 쑰회
β–ͺ
λͺ©λ‘ μ‘°νšŒμ‹œ μš°μ„  find all ν•˜κ³  λ°”λ‘œ to many 의 데이터 쑰회
β€’
N+1 λ°œμƒ
β€’
many-to-one 관계
β—¦
fetch type=EAGER
β–ͺ
단건 μ‘°νšŒμ‹œ
β€’
join column 에 nullable false ν•˜λ©΄ inner, true ν•˜λ©΄ left outer join
β—¦
LAZY
β–ͺ
λͺ©λ‘ μ‘°νšŒμ‹œ
β€’
iter 돌면 N+1
β€’
batch size μ„€μ •ν•˜λ©΄ one 에 ν•΄λ‹Ήν•˜λŠ” 객체 μ‘°νšŒμ‹œ in 절 λ°œμƒ
β€’
ENUM 의 경우 νŒ¨ν‚€μ§€λͺ…κΉŒμ§€ ν¬ν•¨ν•˜μ—¬ λ„£μ–΄μ•Ό ν•œλ‹€.