@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 ๊ฐ ์๋ ํด๋์ค