Copy public class Member {
...
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
생성, 수정 정보를 모든 클래스에 추가해야 한다고 해보자.
BaseEntity.java Member.java JpaMain.java
Copy // 매핑 정보만 받는 부모 클래스를 명시할 때 사용한다.
@ MappedSuperclass
public abstract class BaseEntity {
private String createdBy;
private LocalDateTime createdDate;
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
Copy public class Member extends BaseEntity {
}
Copy public class JpaMain {
public static void main ( String [] args) {
...
try {
Member member = new Member() ;
member . setCreatedBy ( "kim" );
member . setCreatedDate ( LocalDateTime . now ());
em . persist (member);
tx . commit ();
} catch ( Exception e) {
tx . rollback ();
} finally {
em . close ();
}
entityManagerFactory . close ();
}
}
공통된 속성을 클래스로 만들어 상속을 받는다.
그럼 테이블 생성시에도 자동으로 칼럼이 들어간 것을 볼 수 있다.
Copy @ MappedSuperclass
public abstract class BaseEntity {
@ Column (name = "INSERT_MEMBER" )
private String createdBy;
private LocalDateTime createdDate;
@ Column (name = "UPDATE_MEMBER" )
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}