2022. 9. 22. 10:22ใ์ธํ๋ฐ/์ค์ ! ์คํ๋ง ๋ฐ์ดํฐ JPA
์ธํ๋ฐ- ์ค์ ! ์คํ๋ง ๋ฐ์ดํฐ JPA ๊ฐ์๋ฅผ ๋ฃ๊ณ ์ ๋ฆฌํ ๋ด์ฉ์ ๋๋ค.
1๏ธโฃ ์์ ๋๋ฉ์ธ ๋ชจ๋ธ
๊ฐ๋จํ Member, Team๋ง ๋ง๋ค์ด์ ์งํํ๋ค.
Member๋ ํ๋์ Team์ ๊ฐ์ง ์ ์๊ณ , Team์ ์ฌ๋ฌ๋ช ์ Member๋ฅผ ๊ฐ์ง ์ ์๋ค.
Member ์ํฐํฐ
@Entity : Jpa๊ฐ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
@Getter, @Setter : ๋กฌ๋ณต์์ ์ง์ํ๋ ์ด๋ ธํ ์ด์ ์ธ๋ฐ @Setter๋ ๊ฐ๊ธ์ ์ฌ์ฉํ์ง ์๋๊ฒ ์ข๋ค. (set์ ์๋ฌด๋ฐ์๋ ๋จ๋ฐํ๋ฉด ๋์ค์ ์ด๋์ ์์ ์ด ์ด๋ค์ง๋์ง ํ์ ํ๊ธฐ ์ด๋ ต๊ณ ์ ์ง๋ณด์ ์ต์ )
@NoArgsConstructor(access = AccessLevel.PROTECTED)
: ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ๋ง๊ณ ์ถ์ง๋ง JPA์์๋ ํ๋ก์ ๊ธฐ์ ์ ์ฌ์ฉํ ๋ ๊ธฐ๋ณธ ์์ฑ์๋ฅผ ํ์๋ก ํ๊ธฐ ๋๋ฌธ์ Protected๊น์ง๋ ์ด์ด๋ฌ์ผ ํด์ protected๋ก ์ค์ ํ๋ค. - > public์ผ๋ก ํ๋ฉด ๋ ์ฌ๊ธฐ์ ๊ธฐ์ ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ์๊ธฐ ๋๋ฌธ
@ToString()
: ToString ํ ๋ Team ํฌํจํ๋ฉด ์ ๋ ์๋๋ค..!!! ์๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ์ด๊ธฐ ๋๋ฌธ์ Team์๋ Member๋ฅผ ํฌํจํ๊ณ ์์ด์ ๋ฌดํ๋ฃจํ์ ๊ฑธ๋ ค StatckOverFlow ์๋ฌ ๋ฐ์ํ๋ค.
changeTeam()
: ์ฐ๊ด๊ด๊ณ ๋ฉ์๋๋ก Member์์๋ง Team ์ ์ถ๊ฐํ๋ฉด ๋์ด ์๋๋ผ ์๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ์ด๋ฏ๋ก Team์ Members list์๋ Member ๋ฅผ ์ถ๊ฐํด์ค์ผํ๋ค. (๊น๋จน๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ ์ฐ๊ด๊ด๊ณ ๋ฉ์๋๋ก ์ด๋ ๊ฒ ์ฐ๊ฒฐํด์ ์ถ๊ฐํด์ฃผ๋ ๊ฒ์ด ์ข๋ค)
Team ์ํฐํฐ
Member์ Team ์ ์๋ก ์๋ฐฉํฅ ์ฐ๊ด๊ด๊ณ์ด๋ค.
์๋ฐฉํฅ์ด๋ฉด ํ์ชฝ์ด ์ธ๋ํค๋ฅผ ๊ด๋ฆฌํด์ผํ๋๋ฐ ๋ณดํต ์ธ๋ํค๋ '๋ค' ์ชฝ์์ ๊ด๋ฆฌ๋ฅผ ํ๊ธฐ ๋๋ฌธ์ Member๊ฐ ์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ์ด ๋๋ค.
์ฐ๊ด๊ด๊ณ ์ฃผ์ธ์ด ์ธ๋ํค๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ฐ๊ด๊ด๊ณ๊ฐ ์๋ ๊ณณ์ ๋จ์ํ ์กฐํ๋ง ํ ์ ์๋ค.
์ฐ๊ด๊ด๊ณ ์ฃผ์ธ์ @JoinColumn์ผ๋ก Team์ pk๊ฐ์ ์ค์ ํด์ฃผ๊ณ , ์ฐ๊ด๊ด๊ณ ์ฃผ์ธ์ด ์๋ ๊ณณ์๋ mapped by๋ก Member์ Team์ ์ค์ ํด์ค๋ค.
โ ์ฐธ๊ณ
๊ทธ๋ฆฌ๊ณ ๊ฐ๊ธ์ ๋ชจ๋ ์ฐ๊ด๊ด๊ณ์ ์ ๋ต์ LAZY๋ก ์ค์ ํด์ผ ํ๋ค.
2๏ธโฃ ๋ฐ์ดํฐ ํ์ธ ํ ์คํธ
'์ธํ๋ฐ > ์ค์ ! ์คํ๋ง ๋ฐ์ดํฐ JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์คํ๋ง ๋ฐ์ดํฐ JPA] 6. ์คํ๋ง ๋ฐ์ดํฐ JPA ๋ถ์ (0) | 2022.10.03 |
---|---|
[์คํ๋ง ๋ฐ์ดํฐ JPA] 5. ํ์ฅ ๊ธฐ๋ฅ (1) | 2022.09.29 |
[์คํ๋ง ๋ฐ์ดํฐ JPA] 4. ์ฟผ๋ฆฌ ๋ฉ์๋ ๊ธฐ๋ฅ (0) | 2022.09.28 |
[์คํ๋ง ๋ฐ์ดํฐ JPA] 3. ๊ณตํต ์ธํฐํ์ด์ค ๊ธฐ๋ฅ (0) | 2022.09.22 |
[์คํ๋ง ๋ฐ์ดํฐ JPA] 1. ํ๋ก์ ํธ ํ๊ฒฝ์ค์ (0) | 2022.09.21 |