BACKEND/Spring
์์๊ด๊ณ ๋งคํ + ๊ณ ๊ธ ๋งคํ
์ก์ด ๐ซง
2022. 1. 15. 21:26
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์์๊ด๊ณ๊ฐ ์กด์ฌํ์ง ์์
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;
.
.
}