프로젝트에 쓰이는 모든 엔티티에 생성일자시간, 마지막 수정일자시간 컬럼이 필요하다.
그래서 이를 추상 클래스에 필드로 선언한 후 이를 상속하도록 했다.
Spring Data가 제공하는 Auditing 기능을 활용했다.
Auditable 클래스
@Getter
//테이블을 매핑하지 않고, 하위 클래스에 매핑 정보만 제공하기 위해
@MappedSuperclass
//Entity가 DB에 저장되기 전후에 커스텀 로직을 선언!
//AuditingEntityListener 클래스 내부 @CreatedDate, @LastModifiedDate 등을 탐색해 자동 업데이트
@EntityListeners(AuditingEntityListener.class)
public abstract class Auditable {
@CreatedDate //생성일자시간
@Column(nullable = false)
private LocalDateTime createdDate;
@LastModifiedDate //최종수정일자시간
private LocalDateTime modifiedDate;
}
실행 클래스
@EnableJpaAuditing //Auditing 기능 활성화
@SpringBootApplication
public class DailyclubApplication {
public static void main(String[] args) {
SpringApplication.run(DailyclubApplication.class, args);
}
}
Entity 클래스
@Getter
@Entity
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Program extends Auditable {
...
}
참고
'프로젝트 > DailycluB' 카테고리의 다른 글
날짜/시간 정보 API로 주고 받기 (0) | 2022.09.18 |
---|---|
프로그램/유저 이미지 업로드 (0) | 2022.09.17 |
Springdoc Swagger로 API 문서 작업하기 + 이슈 핸들링 (0) | 2022.09.16 |
[회고] Pre Project를 마치고 (0) | 2022.09.10 |
포트포워딩 설정으로 테스트 서버를 만들다. (0) | 2022.08.31 |
댓글