๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์๊ด๊ณ๊ฐ ์กด์ฌํ์ง ์์
1. ์กฐ์ธ ์ ๋ต (์ต์ฐ์ ์ ํ, ๋ณต์กํ๊ฒฝ์ฐ)
insert๋ ๋ถ๋ชจ์ ์์์ 2๋ฒ / DTYPE์ผ๋ก ์กฐ์ธํ ์์ ์ํฐํฐ ๊ตฌ๋ถ
@Inheritance(strategy = InheritanceType.JOINED)
2. ๋จ์ผ ํ ์ด๋ธ ์ ๋ต(๋จ์ํ ๊ฒฝ์ฐ)
ํ ํ ์ด๋ธ์ ํฉ์น๋ค(JPA์ ๊ธฐ๋ณธ์ ๋ต์)
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
๋ถ๋ชจ ์ํฐํฐ์ ์ ์ฉ
@DiscriminatorColumn //DTYPE
์์์ํฐํฐ ์ ์ฉ
@DiscriminatorValue("A")//์์ ์ํฐํฐ ๊ตฌ๋ถ์
@MappedSuperclass
- ์์๊ด๊ณ ๋งคํ์ ์๋์ง๋ง ๊ณตํต๋๋ ์์ฑ์ ์ฌ์ฉํ๊ณ ์ถ์ ๊ฒฝ์ฐ ์ฌ์ฉ!!
- ์ํฐํฐ๋ ์๋(ํ ์ด๋ธ๊ณผ ๋งคํ๋์ง ์๋๋ค)
- ์์ ํด๋์ค์ ๋งคํ ์ ๋ณด๋ง ์ ๊ณต
- ์ถ์ ํด๋์ค๋ก ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅ
- Ex) BaseEntity
@MappedSuperclass
public abstract class BaseEntity { //์์ฑ ์์ํด๋์ค์๊ฒ ๋ด๋ ค์ฃผ๊ธฐ ์ํจ
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
.
.
}
'BACKEND > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SpringBoot JPA CASCADE ์์ (0) | 2022.01.17 |
---|---|
ํ๋ก์ (0) | 2022.01.16 |
pk ์ฌ์ฉ ์ ๋ต (0) | 2022.01.13 |
JPA ์์์ฑ (0) | 2022.01.13 |
JPA ๋ฅผ ์ฌ์ฉํด์ผํ๋ ์ด์ (0) | 2022.01.12 |