프로젝트 - 그룹 멤버 매칭 서비스

[Party Mate] Base Entity 도입

Unagi_zoso 2023. 10. 15. 13:54

기본적으로 엔티티에 생성 날짜, 시간 정보가 담기는데 이러한 부분을 BaseEntity로 빼버려 상속시킬 순 없을까 싶어 도입하였다.
엔티티를 상속시킨다는 점이 하위 클래스들을 복잡하게 만드는 일은 아닐까 싶어서 걱정되는 부분이 컸다.
그냥 기존처럼 롬복과 엔티티 리스너를 사용해 생성 날짜, 시간 시간 정보를 자동적으로 처리하는 기능을 구현할 수 있는데 상속을 한다는 점에서 망설여 지는 부분이 있었는데 중복된 코드를 조금 줄일 수 있다는 점에서 적용해보기로 하였다.

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {

    @CreatedDate
    @Column(updatable = false, nullable = false)
    LocalDateTime createdDateTime;

    @LastModifiedDate
    @Column(nullable = false)
    LocalDateTime updatedDateTime;
}


Member 엔티티 클래스

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Entity(name = "member")
public class Member extends BaseEntity {
...