728x90
๐ก JPARepository์ findAll() ๋ฉ์๋๋ฅผ ํธ์ถํด์ List์ ์ ์ฅ์ ํ๋๋ฐ ํ๋์ Row ๊ฐ๋ง ์๋ฉ ๋ค์ด๊ฐ ์์๋ค. DB๋ฅผ ํ์ธํด ๋ณด๋ ๋งจ ์ ์ฒซ ๋ฒ์งธ row ๋ฐ์ดํฐ์๋๋ฐ ํ ์ด๋ธ์ row ์๋งํผ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์์๊ธฐ ๋๋ฌธ์ ๋งคํ์ ๋ฌธ์ ๊ฐ ์์์ ๋จ๋ฒ์ ์์์ฑ๋ค.
ํ ์คํธ๋ฅผ ์งํํด ๋ณด์.
- ์ฐ์ ๋ก์ปฌ DB์ ํ ์ด๋ธ์ ์์ฑํ๋ค.
- ์นผ๋ผ๋ช ์ ์ง๊ณ ๋๋ฏธ ๋ฐ์ดํฐ๋ ์ ๋นํ๊ฒ ๋ฃ๋๋ค.
- test ๋ฐ์ดํฐ๋ฒ ์ด์ค์ test ํ ์ด๋ธ์ 10๊ฐ์ row๊ฐ ๋ค์ด๊ฐ ์๋ค.
- ์ํฐํฐ๋ฅผ ์์ฑํ๋ค.
- ๋๋ ๋ ๊ฐ์ง๋ฅผ ํ ์คํธํ ์์ ์ด๋ฏ๋ก ์ผ๋ถ๋ฌ id์ name ํ๋๋ช ํ ์ด๋ธ์ ์นผ๋ผ๋ช ๊ณผ ๋ค๋ฅด๊ฒ ํ๋ค.
- seq๋ test ํ ์ด๋ธ์ ID์ ํด๋นํ๋ค.
- name์ test ํ ์ด๋ธ์ USER_NAME์ ํด๋นํ๋ค.
- ๋๋จธ์ง ์นผ๋ผ๋ช ์ ํ๋๋ช ๊ณผ ์ผ์นํ๋ค.
- JPARepository๋ฅผ ์์๋ฐ๋ TestRepository ์์ฑ
์ฒซ ๋ฒ์งธ ํ ์คํธ
- ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๋ค. testrepository์ findAll() ๋ฉ์๋๋ฅผ ํธ์ถํ๊ณ ๋ก๊ทธ๋ฅผ ์ฐ๋ ํ ์คํธ์ด๋ค. ๋๋ ค๋ณด์.
- ๋ ์ฉ.. ์ผ์ชฝ์ testEntity์ seq(ํ ์ด๋ธ์ ID)์ด๋ฉฐ ์ค๋ฅธ์ชฝ์ testEntity์ name(ํ ์ด๋ธ์ USER_NAME)์ด๋ค.
- ํ๋๋ ์ค๋ณต๊ฐ์ด ๋์ค๊ณ ๋ค๋ฅธ ํ๋๋ ๊ฐ์ด ๋ค์ด๊ฐ ์์ง ์๋ค.
- Java์์๋ ์ฐธ์กฐ๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฒด๋ฅผ ์ง์ ์ถ๋ ฅํ ๋ ๊ฐ์ฒด์ toString() ๋ฉ์๋๋ฅผ ํธ์ถํ๋ค.
- toString() ๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ์ฒด์ ๋ฌธ์์ด ํํ์ <ClassName>@<HashCode> ํ์์ผ๋ก ๋ฐํํ๋ค.
- ํด์ ์ฝ๋(Hash Code)๋ ์ผ๋ฐ์ ์ผ๋ก JVM(Java Virtual Machine)์ ํ์ฌ ์คํ ์ค์ธ ๊ฐ์ฒด์ ๋ํ ๊ณ ์ ์๋ณ์์ด๋ค.
- ๋ฐ๋ผ์ ์ 10๊ฐ์ ๊ฐ์ฒด๋ ์ ๋ถ ๊ฐ์ ๊ฐ์ฒด๊ฐ ๋ฐ๋ณตํด์ ๋ฆฌ์คํธ์ ๋ค์ด๊ฐ์์ ๋ณด์ฌ์ค๋ค.
- ๋๊ฐ์ ๊ฐ์ฒด๊ฐ ๋ค์ด๊ฐ ์๋ค. ์ด๋ ์ํฐํฐ์ ํ๋๋ช ๊ณผ ํ ์ด๋ธ์ ์นผ๋ผ๋ช ์ด ๋ฌ๋ผ JPA๊ฐ ์ํฐํฐ์ ํ ์ด๋ธ์ ๋งคํํ ๋ ๊ฐ๋ณ ๊ฐ์ฒด์ ๋ํด ์ฌ๋ฐ๋ฅธ ๋งคํ์ด ๋ถ๊ฐ๋ฅํด ๊ฒฐ๊ณผ์ ์ผ๋ก ๋์ผํ ๊ฐ์ฒด ์ธ์คํด์ค๋ฅผ ๋ฐ๋ณตํ์ฌ ๋ฐํํ๊ฒ ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์๋ @Id์ ํด๋นํ๋ ํ๋๋ช ์ ํ ์ด๋ธ์ ์นผ๋ผ๋ช ๊ณผ ๊ฐ๊ฒ ํ์ฌ ์๋ ๋งคํ์ด ๊ฐ๋ฅํ๋๋ก ๋ฐ๊พธ๊ฑฐ๋, @Column(name = "") ์ ๋ํ ์ด์ ์ ์ด์ฉํด ์๋ ๋งคํ์ ํด์ฃผ๋ฉด ๋๋ค.
- ๋๋ @Column ์ ๋ํ ์ด์ ์ ์ด์ฉํด ์๋ ๋งคํํด ์ฃผ์๋ค.
- ํ ์ด๋ธ์ ๊ฐ์ด ์ค๋ณต๋์ง ์๊ณ ์ ์์ ์ผ๋ก ๋ค์ด์จ ๊ฒ์ ํ์ธํ ์ ์๋ค.
๋ ๋ฒ์งธ ํ ์คํธ
- ๊ฐ์ ๋ฌธ์ ์๋ ํ๋๋ช ์ธ name์ ๋ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ๋ช ์ธ USER_NAME์ ์๋ ๋งคํํด ์ฃผ์๋ค.
- ํ๋๋ช ๊ณผ ์นผ๋ผ๋ช ์ด ๋ชจ๋ ์ ์์ ์ผ๋ก ๋งคํ๋ ๋ชจ์ต์ ํ์ธํ ์ ์๋ค.
์ ๋ฆฌ
- JPA๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์นด๋ฉ์ผ์ด์ค์ ์ํฐํฐ ํ๋๋ช ์ ์ค๋ค์ดํฌ์ผ์ด์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ ์นผ๋ผ๋ช ์ผ๋ก ์๋๋งคํํด ์ค๋ค.
- ๋ง์ฝ ์๋ ๋งคํ์ด ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ(์ํฐํฐ ํ๋๋ช ๊ณผ ํ ์ด๋ธ ์นผ๋ผ๋ช ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ) @Column์ ์ฌ์ฉํด ์๋ ๋งคํํด์ค์ผ ํ๋ค.
- @Id์ ํด๋นํ๋ ๊ธฐ๋ณธํค๋ ๋ฐ๋์ ๋งคํ์ด ๋์ด์ผ ์ ์์ ์ผ๋ก ํ ์ด๋ธ row ๊ฐ์ ๋ชจ๋ ๋ถ๋ฌ์ฌ ์ ์๋ค.
728x90
'[JAVA] > JPA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ณตํฉ ๊ฐ ํ์ - @Embedded์ private static inner class๋ฅผ ๋น๊ตํด๋ณด์. (0) | 2023.08.14 |
---|---|
Entity ํด๋์ค์์ @Builder ์ ๋๋ก ์๊ณ ์ฌ์ฉํ์ (5) | 2023.05.23 |
JPQL - ๋ฒํฌ ์ฐ์ฐ (1) | 2023.05.14 |
JPQL - @NamedQuery ์ ๋ํ ์ด์ (0) | 2023.05.13 |
JPQL - ์ํฐํฐ ์ง์ ์ฌ์ฉ (0) | 2023.05.13 |