JPA Entity
JPA Entity๋ฅผ ๊ตฌํํ๋ ค๋ฉด ๋ค์ ๊ท์น์ ์ง์ผ์ ธ์ผํ๋ค.
๋ชจ๋ Entity ํด๋์ค๋ @Id ์ค์ ์ด ํ์ํ๋ค.
์ด๋ @Id๋ก ์ค์ ๋ ๊ฐ์๋ null๊ฐ์ด ์ฌ ์ ์๋ค.
๊ธฐ๋ณธํค๊ฐ ๋ณตํฉํค์ธ ๊ฒฝ์ฐ์๋ @EmbeddedId ํน์ @IdClass๋ฅผ ์ฌ์ฉํ๋ค.
ํ ์ด๋ธ์ Primary Key๊ฐ ์๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ ์๋ค. ์ด ๊ฒฝ์ฐ์๋ Uniqueํ ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก @Id annotation์ ๋ถ์ด๋ฉด๋๋ค.
๋จ์ผํค
@Entity : JPA Entity์์ ์๋ฆฐ๋ค.
@Table : 'member' ํ ์ด๋ธ๊ณผ ๋งคํ๋จ์ ๋ช ์ํ๋ค.
@Id : Primary Key์์ ๋ช ์ํ๋ค.
๋ณตํฉํค(EmbeddedId, @IdClass)
๋ ์ด๋ ธํ ์ด์ ์ ๋ฌผ๋ฆฌ์ ๋ชจ๋ธ ๊ด์ ์์ ์ฐจ์ด์ ์ ์๋ค.
@EmbeddedId๋ ๊ฒฐํฉ ๋ PK๊ฐ ์๋ฏธ์๋ ์ํฐํฐ ์์ฒด์ด๊ฑฐ๋ ์ฝ๋์์ ์ฌ์ฌ์ฉ ๋ ๋ ์๋ฏธ๊ฐ ์๋ค.
๊ฐ์ฒด ์งํฅ์ ๋ ๊ฐ๊น์ด ๋ฐฉ๋ฒ
@IdClass๋ ํ๋์ ์ผ๋ถ ์กฐํฉ์ด ๊ณ ์ ํ์ง๋ง ํน๋ณํ ์๋ฏธ๊ฐ ์์ ๊ฒฝ์ฐ์ ์ ์ฉํ๋ค.
DB์ ๋ ๊ฐ๊น์ด ๋ฐฉ๋ฒ
@IdClass
@IdClass์๋ ์๋ณ์ ํด๋์ค๋ฅผ ์์ฑํด์ผํ๋ค. ์์์์๋ PaymentMasterPk ํด๋์ค๋ฅผ ์์ฑํด์ฃผ์๋ค. ์ฌ๊ธฐ์ ์๋ณ์ ํด๋์ค์๋ ๋ช๊ฐ์ง ๊ท์น์ด ์๋ค.
Serializable ์ธํฐํ์ด์ค ๊ตฌํ
์๋ณ์ ํด๋์ค์ ํ๋๋ช ๊ณผ Entity์์ ์ฌ์ฉํ๋ ์๋ณ์์ ํ๋๋ช ์ด ๋์ผํด์ผํ๋ค.
equals()
์hashCode()
๋ฅผ ๊ตฌํํด์ผํ๋ค.๊ธฐ๋ณธ ์์ฑ์(args๊ฐ ์๋)๋ฅผ ๊ตฌํํด์ผํ๋ค.
ํด๋์ค์ ์ ๊ทผ ์ ํ์๋ public์ด์ด์ผํ๋ค.
@EmbeddedId
์๋ณ์ ํด๋์ค์ @Embeddable์ ์ฌ์ฉํด์ผํ๋ค.
Serializable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผํ๋ค.
equals()
,hashCode()
๋ฅผ ๊ตฌํํด์ผํ๋ค.๊ธฐ๋ณธ์์ฑ์๋ฅผ ์ ์ธํด์ผํ๋ค.
ํด๋์ค์ ์ ๊ทผ ์ ํ์๋ public์ด์ด์ผํ๋ค.
์ฐธ์กฐ
Last updated