@MappedSuperclass
์์๋ฐ๋ ๊ฒ์ ์๋ , ํ ์ด๋ธ๊ณผ ๋งคํํ๋ ๊ฒ์ด ์๋
๊ณตํต ์์ฑ(๋งคํ ์ ๋ณด)๋ง ์ ๊ณตํ ๋ ์ฌ์ฉํ๋ค.
@MappedSuperclass
public abstract class BaseEntity {
private String createdBy;
private LocalDateTime createDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
์ง์ ์์ฑํด์ ์ฌ์ฉํ ์ผ์ด ์์ผ๋ฏ๋ก ์ถ์ ํด๋์ค๋ก ๋ง๋ค์
public class Member extends BaseEntity
๋ถ๋ชจ ํด๋์ค๋ฅผ ์์ ๋ฐ๋ ์์ ํด๋์ค์ ๋งคํ ์ ๋ณด๋ง ์ ๊ณตํ๋ค.
์กฐํ, ๊ฒ์์ด ๋ถ๊ฐํ๋ค ( em.find(BaseEntity.class) )
ํ ์ด๋ธ๊ณผ ๊ด๊ณ๊ฐ ์๊ณ , ๋จ์ํ ์ํฐํฐ๊ฐ ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ๋งคํ ์ ๋ณด๋ฅผ ๋ชจ์ผ๋ ์ญํ ์ด๋ค.
์ฃผ๋ก ๋ฑ๋ก์ผ, ์์ ์ผ, ๋ฑ๋ก์, ์์ ์ ๊ฐ์ ์ ์ฒด ์ํฐํฐ์์ ๊ณตํต์ผ๋ก ์ ์ฉํ๋ ์ ๋ณด๋ฅผ ๋ชจ์ ๋ ์ฌ์ฉํ๋ค.
@Entity
@MappedSuperclass
์ฐธ๊ณ : @Entiy ํด๋์ค๋ ์ํฐํฐ๋ @MappedSuperclass๋ก ์ง์ ํ ํด๋์ค๋ง ์์๊ฐ๋ฅํ๋ค.
JPA ์์ extends ๋ฅผ ์ฌ์ฉํ ๋๋ @Entity , @MappedSuperclass ๊ฐ ์๋ ํด๋์ค
์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ | ๊ฐ์
JPA๋ฅผ ์ฒ์ ์ ํ๊ฑฐ๋, ์ค๋ฌด์์ JPA๋ฅผ ์ฌ์ฉํ์ง๋ง ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ์กฑํ์ ๋ถ๋ค์ด JPA์ ๊ธฐ๋ณธ ์ด๋ก ์ ํํํ๊ฒ ํ์ตํด์ ์ด๋ณด์๋ ์ค๋ฌด์์ ์์ ์๊ฒ JPA๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ
www.inflearn.com