ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ JPA๋ฅผ ํ์ฉํ ๋๋ฉ์ธ ๋ก์ง์ด ํญ์ ์ข์๊น? ์ ๋ํด ๊ณ ๋ฏผํ๋ ๋ด์ฉ์ธ๋ฐ์ ๊ฐ๋ตํ๊ฒ ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค. **์ฝ๋์๋ ์ ๋ต์ด ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ํ๋์ ๋ฌธ์ ํด๊ฒฐ ๊ด์ ์ด๋ผ๊ณ ๋ด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
- ๋๋ฉ์ธ ๋ก์ง(JPA) ์ผ๋ก ์ข์์๋ฅผ ๊ตฌํํ์ ๊ฒฝ์ฐ
- ๊ฐ์ ๋ฐ ๋๋ฉ์ธ ๋ก์ง์ด ์์ข์๋
- Conclusion
1. ์ข์์ ๋๋ ๋์ง๋ฅผ JPA์กฐ์ธ์ผ๋ก ๊ฐ์ ธ์ฌ ๊ฒฝ์ฐ
๋๋ฉ์ธ ๋ก์ง์ ํ์ฉํด (๊ฒ์๊ธ์) ์ข์์๋ฅผ ์ถ๊ฐ/์ญ์ ํ๊ธฐ ์ํด์๋ ์๋์ ๊ฐ์ ๋ก์ง์ด ํ์ํฉ๋๋ค. ์ข์์๋ฅผ ํ ๋ฒ๋ ์ ๋๋ ๋ค๋ฉด ์ข์์๋ฅผ ์ถ๊ฐํ๊ณ , ์ด๋ฏธ ๋๋ ๋ค๋ฉด ๋๋ ๋ ์ข์์๊ฐ ์ทจ์๋๋ ๋ก์ง์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ฌ๊ธฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. contains( ) ๋ฉ์๋๋ฅผ ์คํํ๊ธฐ ์ํด์๋ ๋ด๋ถ์ ์ด๋ค ๊ฐ์ด ์๋์ง ์์์ผ ํ๊ธฐ ๋๋ฌธ์ JPA์์ ์ด ๊ฐ๋ค์ join + in์ฟผ๋ฆฌ๋ก ์ฝ์ด์ต๋๋ค. ์ฆ, ๋๋ฉ์ธ ๋ก์ง์ ์ฒดํฌํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฅผ ๋จผ์ ์กฐํํด์ค๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ข์์๋ฅผ ๋๋ฅธ ์ฌ๋์ด 999๋ช ์ด ๋์ด๊ฐ๋ค๋ฉด? ์๋น์ค๊ฐ ์๋๋ค๊ณ ๊ฐ์ ํด์ 10๋ง๋ช ์ด ์ข์์๋ฅผ ๋๋ ๋ค๋ฉด, ๊ฒ์๊ธ์ ๋ฌ๋ฆฐ 10๋ง๊ฐ์ ์ข์์ ๊ฐ๋ค์ ๋ชจ๋ ์กฐ์ธ + in์ ๋ก ์ฐพ์์ค๋๊ฒ ์ข์๊น์? ์๊ฐ์ ๋ค๋ฅผ ์ ์์ง๋ง ๊ฐ์ธ์ ์ผ๋ก๋ ์๋๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ด ๊ฒฝ์ฐ์๋ JPA๊ฐ ์ ๊ณตํ๋ ํ์น์กฐ์ธ์ ์ด์ฉํ๋ ๊ฒ๋ณด๋ค ์ฟผ๋ฆฌ๋ฅผ ํตํด ์ด๋ฏธ ๋๋ ๋์ง๋ฅผ ์ง์ํ๊ณ ๋๋ฅธ ์ ์ด ์๋ค๋ฉด ์ข์์๋ฅผ ์ถ๊ฐ, ๋๋ฅธ์ ์ด ์๋ค๋ฉด ์ ๊ฑฐํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ผ ๊ฒ์ ๋๋ค. ๋ด๊ฐ ํ์ํ ๊ฐ์ด ์๋์ง๋ง ์ฒดํฌํ๋ฉด ๋๋๊น์.
2. ๊ฐ์
๋ฐ๋ผ์ ์๋์ ๊ฐ์ด ์ปค๋ฒ๋ง ์ธ๋ฑ์ค(memberId, studyId๊ฐ ์ธ๋ฑ์ค)๋ฅผ ํ์์ ์ข์์๋ฅผ ๋๋ ๋์ง๋ฅผ ์ฐพ์์จ ํ ๋ถ๊ธฐ๋ฌธ์ ํตํด ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ผ ํ๋จํ์ต๋๋ค.
์ข์์๋ฅผ ๋๋ ๋์ง๋ฅผ ์ง์ํ๊ณ ํด๋ฆญํ ์ ์ด ์๋ค๋ฉด ์ญ์ , ํด๋ฆญํ ์ ์ด ์๋ค๋ฉด ์ข์์๋ฅผ ์ถ๊ฐํ๋ ๋ก์ง์ ๋๋ค. ๋ฌผ๋ก ์ข์์ ๊ฐ์๊ฐ ์ ๋ค๋ฉด ๋จ์ ์กฐ์ธ์ผ๋ก ์ด๋ฅผ ํ์ด๋ ์๊ด์์ต๋๋ค. ๋ค๋ง ์๋น์ค๊ฐ ์๋์ ๊ฒฝ์ฐ์๋ ํ ๋ฒ ์๊ฐํด๋ณด๋ฉด ๊ฐ์ฒด๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๋ณด๋ค ์ฟผ๋ฆฌ(SQL)๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ๋ ์ข์ ์๋ ์์ต๋๋ค.
๋น์ทํ ๋ฌธ์ ๊ฐ ํ๋ก์/ํ๋ก์๋ฅผ ๊ตฌํํ ๋๋ ์์๋๋ฐ์, ์๋์ ๊ฐ์ด ์ปฌ๋ ์ ์์ remove๋ฅผ ํด์ฃผ๊ฒ ๋๋ฉด ์ญ์ ๋ฅผ ํ๊ธฐ ์ ์ ์ฐ์ ์ถ๊ฐ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. in์ ๋ก ์ฐ๊ด๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํ์ธ ํ ์ญ์ ํ๋ ๊ฒ์ธ๋ฐ์, ์ด๋ in์ ๋ก ๊ฐ์ ธ์ค๋ ๋ฐ์ดํฐ ์๊ฐ 10๋ง๊ฐ ์ ๋๋ผ๋ฉด ๋ฐ์ดํฐ ์ญ์ ๋ณด๋ค ์กฐํ์ ๋ ํฐ ๋น์ฉ์ด ๋ฐ์ํ๊ฒ ๋ฉ๋๋ค. ๋ฐฐ๋ณด๋ค ๋ฐฐ๊ผฝ์ด ์ปค์ง๋ ๊ฒ์ด์ฃ . **์ฟผ๋ฆฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋ฉด ์ญ์ ๋ฅผ ์ํ ์กฐํ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ์ง ์์ต๋๋ค.
3. Conclusion
๊ฒฐ๋ก ์ JPA๊ฐ ์ ๊ณตํด์ฃผ๋ ์ด์ (๋๋ฉ์ธ ๋ก์ง ํ์ฉ)์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ฉํ๋๊ฒ๋ณด๋ค ๋จ์ ์ฟผ๋ฆฌ(SQL)๋ฅผ ์ด์ฉํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋๊ฒ ๋ ๋์๋๋ ์๋ค ์ ๋๋ค. ์ฐ๋ค๋ณด๋ JPA์ ๋จ์ ์ ๋ํด ๋ ๋ถ๊ฐ์ด ๋์๋๋ฐ์, ์์์๋ ์ธ๊ธํ์ง๋ง ์๋น์ค๊ฐ ์๋ค๋ฉด ์ด๋ฅผ ๊ณ ๋ คํ์ง ์์๋ ๋ฉ๋๋ค. ํ์ง๋ง ์๋น์ค๊ฐ ์ปค์ก์ ๊ฒฝ์ฐ๋ผ๋ฉด, ์ข์์์ ๊ฐ์๊ฐ ๋๋ฌด ๋ง๋ค๋ฉด ์ด๋ฅผ ์กฐ์ธ์ผ๋ก ๋๊ณ ์ค๋๊ฒ ์์ฒด๊ฐ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ฟผ๋ฆฌ๋ฅผ ํตํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ๋ ์๊ฐํด๋ณด๋ฉด ์ข์๊ฒ ๊ฐ๋ค. ๋ผ๋ ๊ฒ์ ๋งํ๊ณ ์ถ์์ต๋๋ค. ์ฝ์ด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ** ์ต๊ทผ ์๊พธ JPA์ ๋จ์ ๋ง ์ฐ๊ฒ ๋๋ค์...
'๐ฅDEV > Java || Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก์/ํ๋ก์ ๊ตฌํ์์ ๋ง์ฃผ์น ๋์์ฑ (0) | 2022.09.19 |
---|---|
[์ดํํฐ๋ธ์๋ฐ] Item 16. (0) | 2022.08.21 |
ํ๋์ ๋ ํฌ์งํ ๋ฆฌ๋ก ํ์ ์ํฐํฐ ๊ด๋ฆฌํ๊ธฐ (0) | 2022.07.31 |
๊ฐ์ ๊ฒ์ฆํ๋ ์์น๋ ์ด๋๊ฐ ์ข์๊น? (0) | 2022.07.30 |
@Component์ @Configuration์ ์ฐจ์ด (0) | 2022.07.24 |
๋๊ธ