BaseTimeEntity
JPA에서 자동으로 생성일자 , 수정일자를 만들어 주는 추상 클래스
@MappedSuperclass
@EntityListeners
자동으로 생성일자 / 수정일자 컬럼을 sql문에 추가시키는 어노테이션
@Getter
// TODO : 자동을 생성일자 / 수정일자 컬럼을 sql 문에 추가시키는 어노테이션 2개
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseTimeEntity {
// TODO : 단점
// TODO: 공통속성 : yyyy-MM-dd HH:mm:ss 이 패턴이 아닌 기본 패턴으로 보임
private String insertTime;
private String updateTime;
// TODO: 따라서 패턴을 만들어 줍시다.
// TODO : 해당 테이블에 데이터가 만들어 질때(insert 문) 실행되는 이벤트 함수
@PrePersist
void OnPrePersist() {
this.insertTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
}
// TODO : 해당 데이터가 수정될때 (update 문) 실행되는 이벤트 함수
@PreUpdate
void OnPreUpdate() {
this.updateTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
this.insertTime = this.updateTime; // 생성일시 == 수정일시 동일하게 처리
}
}
'SpringBoot > JPA' 카테고리의 다른 글
SpringBoot - JPA - 페이징 처리 (1) | 2023.10.18 |
---|---|
SpringBoot - JPA - 쿼리 메소드와 @Query 어노테이션 (0) | 2023.10.17 |
SpringBoot - JPA - Repository (인터페이스) (0) | 2023.10.16 |
SpringBoot - JPA - Entity class (1) | 2023.10.16 |
SpringBoot - JPA 라이브러리 실습을 위한 설정 (0) | 2023.10.16 |