์ ์ฒด ๊ธ193 ์ด์ 1 ยทยทยท 13 14 15 16 17 18 19 ยทยทยท 28 ๋ค์ [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ์ค๊ธ ๋ฌธ๋ฒ(2) JPQL - ํ์น ์กฐ์ธ(fetch join) ์ค๋ฌด์์ ์ ๋ง์ ๋ง ์ค์ํจ ํ์น ์กฐ์ธ(fetch join) SQL ์กฐ์ธ ์ข ๋ฅX JPQL์์ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด ์ ๊ณตํ๋ ๊ธฐ๋ฅ ์ฐ๊ด๋ ์ํฐํฐ๋ ์ปฌ๋ ์ ์ SQL ํ ๋ฒ์ ํจ๊ป ์กฐํํ๋ ๊ธฐ๋ฅ join fetch ๋ช ๋ น์ด ์ฌ์ฉ ํ์น ์กฐ์ธ ::= [ LEFT [OUTER] | INNER ] JOIN FETCH ์กฐ์ธ๊ฒฝ๋ก ์ํฐํฐ ํ์น ์กฐ์ธ ํ์์ ์กฐํํ๋ฉด์ ์ฐ๊ด๋ ํ๋ ํจ๊ป ์กฐํ(SQL ํ ๋ฒ์) SQL์ ๋ณด๋ฉด ํ์ ๋ฟ๋ง ์๋๋ผ ํ(T.*)๋ ํจ๊ป SELECT [JPQL] select m from Member m join fetch m.team select์ ์ m๋ง ๋ช ์ํจ join fetch ๊ตฌ๋ฌธ ์ฌ์ฉ [SQL] SELECT M.*, T.* FROM MEMBER M INNER.. 2023. 11. 27. [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ์ค๊ธ ๋ฌธ๋ฒ(1) ๊ฒฝ๋ก ํํ์ .(์ )์ ์ฐ์ด ๊ฐ์ฒด ๊ทธ๋ํ๋ฅผ ํ์ํ๋ ๊ฒ select m.username -> ์ํ ํ๋ from Member m join m.team t -> ๋จ์ผ ๊ฐ ์ฐ๊ด ํ๋ join m.orders o -> ์ปฌ๋ ์ ๊ฐ ์ฐ๊ด ํ๋ where t.name = 'ํA' ๋ด๋ถ์ ์ผ๋ก ๋์ํ๋ ๋ฐฉ์ ๊ตฌ๋ถ ์ํํ๋ ๋จ์ผ ๊ฐ ์ฐ๊ดํ๋ ์ปฌ๋ ์ ๊ฐ ์ฐ๊ดํ๋ ๊ฒฝ๋ก ํํ์ ์ฉ์ด ์ ๋ฆฌ ๋ฐ ์ค๋ช ์ํ ํ๋(state field) ๋จ์ํ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ํ๋ (ex: m.username) ๊ฒฝ๋ก ํ์์ ๋, ํ์X #๋จ์ผ ๊ฐ ์ฐ๊ด ๊ฒฝ๋ก ํ์ [JPQL] select o.member from Order o; [SQL] select m.* from Orders o inner join Member m on o.member_id .. 2023. 11. 26. [JPA] ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด - ๊ธฐ๋ณธ๋ฌธ๋ฒ (2) ์กฐ์ธ ๋ด๋ถ ์กฐ์ธ SELECT m FROM Member m [INNER] JOIN m.team t ์ธ๋ถ ์กฐ์ธ SELECT m FROM Member m LEFT [OUTER] JOIN m.team t ์ธํ ์กฐ์ธ SELECT count(m) FROM Member m, Team t WHERE m.username = t.name ON ์ ON์ ์ ํ์ฉํ ์กฐ์ธ(JPA 2.1๋ถํฐ ์ง์) 1. ์กฐ์ธ ๋์ ํํฐ๋ง 2. ์ฐ๊ด๊ด๊ณ ์๋ ์ํฐํฐ ์ธ๋ถ ์กฐ์ธ(ํ์ด๋ฒ๋ค์ดํธ 5.1๋ถํฐ) ์กฐ์ธ ๋์ ํํฐ๋ง ์) ํ์๊ณผ ํ์ ์กฐ์ธํ๋ฉด์, ํ ์ด๋ฆ์ด A์ธ ํ๋ง ์กฐ์ธ [JPQL] SELECT m, t FROM Member m LEFT JOIN m.team t on t.name = 'A' [SQL] SELECT m.*, t.* FROM Me.. 2023. 11. 26. [ch.5] ์ํธ ํ๋ ์น์ ํ SQLํ๋ ๊ณต๋ถ ์ ๋ฆฌ ๋ ธ์ ๋งํฌ https://ginger-edam-26b.notion.site/SQL_CH_5_-_-98961bb937cc4bb8ab8cef70195814aa?pvs=4 SQL_CH_5_์ํธ_ํ๋ [ ์ค๋ ์์ ํต์ฌ ] ginger-edam-26b.notion.site [๋ฏธ๋ฆฌ๋ณด๊ธฐ] 2023. 11. 26. [ch.4] ์กฐ์ธ ํ๋ ์น์ ํ SQLํ๋ ๊ณต๋ถ ์ ๋ฆฌ ๋ ธ์ ๋งํฌ https://ginger-edam-26b.notion.site/SQL_CH_4_-_-f4b956332f34427e9042b788d273a194?pvs=4 SQL_CH_4_์กฐ์ธ_ํ๋ [ ์ค๋ ์์ ํต์ฌ ] ginger-edam-26b.notion.site [๋ฏธ๋ฆฌ๋ณด๊ธฐ] 2023. 11. 26. [ch.3] INDEX ํ๋ ์น์ ํ SQLํ๋ ๊ณต๋ถ ์ ๋ฆฌ ๋ ธ์ ๋งํฌ https://ginger-edam-26b.notion.site/SQL_CH_3_INDEX_-68c56ad245b0422b8fe5b5a6145c3885?pvs=4 SQL_CH_3_INDEX_ํ๋ [ CH.3 ์ธ๋ฑ์ค ํ๋ ] ginger-edam-26b.notion.site [๋ฏธ๋ฆฌ๋ณด๊ธฐ] 2023. 11. 26. [ch.2] ์ธ๋ฑ์ค ๊ธฐ๋ณธ ์น์ ํ SQLํ๋ ๊ณต๋ถ ์ ๋ฆฌ ๋ ธ์ ๋งํฌ https://ginger-edam-26b.notion.site/SQL_CH_2_-_-0b68ac7defd948889b84ad47fc8eafbb?pvs=4 SQL_CH_2_์ธ๋ฑ์ค_๊ธฐ๋ณธ [ ์ค๋ ์์ ํต์ฌ ] ginger-edam-26b.notion.site [๋ฏธ๋ฆฌ๋ณด๊ธฐ] 2023. 11. 26. ์ด์ 1 ยทยทยท 13 14 15 16 17 18 19 ยทยทยท 28 ๋ค์