@ElementCollection
โข
Element ๊ฐ์ฒด์ ์ปฌ๋ ์
์งํฉ์ด๋ค.
โข
Element ๋ก๋ ๊ธฐ๋ณธ ํ์
(String, Long ๋ฑ) ๊ณผ Embeddable ๋ก ์ ์ธ๋ ๊ฐ์ฒด๊ฐ ๋ ์ ์๋ค.
โข
๋ถ๋ชจ Entity Id์ ์ถ๊ฐ ์ปฌ๋ผ(basic or embedded ํ์
)์ผ๋ก ๊ตฌ์ฑ๋๋ค.
โข
๊ธฐ๋ณธ์ ์ผ๋ก ๊ฐ ํ์
์ปฌ๋ ์
์ ๋ณ๊ฒฝ ์ฌํญ(์ ์ฅ, ์ญ์ )์ด ๋ฐ์ํ๋ฉด, ์์ ํ๋ ์ํฐํฐ์ ์ฐ๊ด๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๊ณ , ํ์ฌ ๋จ์์๋ ๊ฐ์ ๋ชจ๋ ๋ค์ ์ ์ฅํ๋ค.
@CollectionTable
โข
@Table ๊ณผ ๊ฐ์ด Collection ์ผ๋ก ์ ์ธ๋ ๋ณ์์ ๋ํ ํ
์ด๋ธ์ ๋ง๋ค ๋ ์ฌ์ฉ
โข
์ฐ๊ด ๊ฐ์ฒด์ ์์กด์ ์ด๊ธฐ๋๋ฌธ์ ์ต์
์ผ๋ก๋ joinColumns ์ foreignKey ๊ฐ ์๋ค.
@AttributeOverride
โข
column ๋ช
์ ์ ์ํ ์ ์๋ค.
@Embedded
private Code code;
@Embedded
private Code teamCode;
Java
๋ณต์ฌ
โข
Embedded ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ ๋ ํด๋น ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๋ฒ ์ฌ์ฉํ๋ฉด column ๋ช
์ด ์ค๋ณต์ผ๋ก ๋ค์ด๊ฐ ์ ์๋ค.
โข
Code ๊ฐ์ฒด ๋ด๋ถ์ ๋ณ์ ๋ช
์ value ๋ผ์ code column ๊ณผ teamCode column ์ ๊ณตํต์ ์ผ๋ก ์ ์ฉ๋์ด ์์ธ๊ฐ ๋ฐ์
@Embedded
@AttributeOverride(name = "code", column = @Column(name = "code", nullable = false)
private Code code;
@Embedded
@AttributeOverride(name = "code", column = @Column(name = "team_code", nullable = false)
private Code teamCode;
Java
๋ณต์ฌ
@MappedSuperclass
โข
๋ถ๋ชจ ํด๋์ค๊ฐ ์ํฐํฐ๊ฐ ์๋ ๋ ์์์ ํด์ฃผ์ด์ผ ํ๋ ๊ฒฝ์ฐ
โข
๋ณดํต BaseEntity ๋ผ๋ ํด๋์ค๋ก ์ฌ์ฉ