@Entity
public class Member{
@Id @GeneratedValue
private Long id;
private String username;
...
}
@Entity
public class Member extends BaseEntity{
@Id @GeneratedValue
private Long id;
private String username;
...
}
@MappedSuperclass
@Getter
@Setter
public abstract class BaseEntity{
@Column(name="INSERT_MEMBER")
private String createdBy;
private LocalDateTime createdAt;
@Column(name="UPDATE_MEMBER")
private String lastModifiedBy;
private LocalDateTime lastModifiedDate;
}
→ MappedSuperclass 어노테이션을 활용하여, 모든 엔티티가 공통적으로 갖게될 속성을 선언한다.
...
Member member = new Member();
member.setUserName("Leejaebeen");
member.setcreatedBy("Lee");
member.setCreatedDate(LocalDateTime.now());
...
em.persist(member);
...
tx.commit();