์๋์ ๊ฐ์ ์์ธ์ผ๋ก ๊ด๊ณ ์ ๋ํ ํต๊ณ ๋ฐฐ์น ์์ ์ด ์คํจ๋๊ณ ์์๋ค.

๋ก๊ทธ๋ฅผ ๋ฐ๋ผ๊ฐ๋ณด๋ hibernate ์ธ์
์ด ์ข
๋ฃ๊ฐ ๋์ด DB์ ์ํธ์์ฉ์ ํ์ง ๋ชปํ๋ค๋ ๊ฒ์ด์๋ค. ๋ฌธ์ ๊ฐ ๋๋ ๋ถ๋ถ์ ํ์ธํ๊ธฐ ์ํด ์๋ฌ๊ฐ ๋ฐ์ํ๋ calculateAdStat ๋ฉ์๋๋ฅผ ๋ฐ๋ผ๊ฐ ๋ณด์๋ค.

calculateAdStat ๋ฉ์๋๋ฅผ ํ์ธํด๋ณด๋ videoAdReadRepository.findAll(); ๋ฉ์๋๋ฅผ ์คํํ์ฌ ๋ฆฌ์คํธ videoAdList์ ์ด๊ธฐํ๋ฅผ ํ๋ ์ฝ๋์ ๋ฌธ์ ๋ผ๋ ๊ฒ์ ํ์
ํ ์ ์์๋ค.
hibernate์ ์ธ์ ์ ํธ๋์ญ์ ์ ์๋ช ์ฃผ๊ธฐ์ ๋์ผํ๊ฒ ๋์ํ๋ค. ์ฆ, hibernate์ ์ธ์ ์ ํธ๋์ญ์ ์ด ์์๋จ๊ณผ ๋์์ ์์๋๊ณ ์ข ๋ฃ๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค.
๋๋ฌธ์, ํธ๋์ญ์ ์ด ์ด๋ฏธ ์ข ๋ฃ๋ ์์ ์์ Fetch type์ด Lazy์ธ User ์ํฐํฐ์ ๋ฐ์ดํฐ๋ฅผ getํ๋ ค๊ณ ํ๋ ๋ฉ๋ชจ๋ฆฌ์ user ๋ฐ์ดํฐ๊ฐ ์์ด ์๊ธด ๊ฒ์ด์๋ค.
public void calculateAdDailyStat() {
// ํธ๋์ญ์
์์
List<VideoAd> videoAdList = videoAdReadRepository.findAll();
// ํธ๋์ญ์
์ข
๋ฃ (์ธ์
๋ซํ)
for (VideoAd videoAd : videoAdList) {
// ์ธ์
์ด ๋ซํ๊ธฐ ๋๋ฌธ์, ์กฐํ๋ฅผ ํ ์ ์๋ค.
long user_id = videoAd.getVideo().getUser().getId();