그러던 와중 엔티티에서 공통적으로 사용되는 컬럼을 따로 빼야 하는 일이 있었다.
BaseTimeEntity.java
@EntityListeners(value = AuditingEntityListener.class)
@Getter
@MappedSuperclass
public abstract class BaseTimeEntity {
@CreatedDate
@Column(updatable = false, nullable = false)
private LocalDateTime createTime;
@LastModifiedDate
@Column(nullable = false)
private LocalDateTime updateTime;
}
필자는 BaseEntity와 BaseTimeEntity를 따로 만들어 Entity <- BaseEntity <- BaseTimeEntity 와 같은 방법으로 서로 연결해주는 구조로 만들었다.
BaseEntity.java
@MappedSuperclass
@Getter
@EntityListeners(value = AuditingEntityListener.class)
public abstract class BaseEntity extends BaseTimeEntity {
@CreatedBy
@Column(nullable = false, updatable = false)
private String createBy;
@LastModifiedBy
@Column(nullable = false)
private String updateBy;
}
사용할 때 BaseEntity만 상속받으면 된다.
자주 사용하게 될 컬럼들이라 따로 만들었지만 많이 사용하지 않는다면 필요한 엔티티에 위의 어노테이션을 붙여 사용하면 된다.
잘못된 내용이 있거나 수정이 필요한 부분이 있다면 bht9011@gmail.com 으로 연락주시거나 댓글 남겨주시면 감사하겠습니다.
읽어주셔서 감사합니다.