[Spring] JPA Auditing
JPA Auditing
일부 테이블에 같은 필드를 추가하고 싶을 때 일일이 각 테이블에 필드를 선언해주지 않고 스프링에서 제공하는 JPA Auditing를
사용하면 훨씬 간편하게 추가할 수 있다. 나같은 경우 생성 날짜 created_at
, 최근 업데이트 날짜 updated_at
를 추가했다.
@EnableJpaAuditing
main()
에 @EnableJpaAuditing를 설정해주자.
@EnableJpaAuditing //추가
@SpringBootApplication
public class MallApplication {
public static void main(String[] args) {
SpringApplication.run(MallApplication.class, args);
}
}
BaseEntity
공통 필드들을 선언해줄 BaseEntity
를 만들어주자.
생성 날짜 created_at
, 최근 업데이트 날짜 updated_at
를 선언해주는데 각각 @CreatedDate
와 @LastModifiedDate
를
같이 설정해주면 BaseEntity
데이터가 생성될 때 created_at
에 알아서 값이 입력되고, updated_at
는 데이터가 갱신될 때마다
값이 업데이트된다.
@MappedSuperclass
@EntityListeners({AuditingEntityListener.class})
@Getter
public class BaseEntity {
@CreatedDate
@Column(updatable = false, name = "created_at")
private LocalDateTime createdAt;
@LastModifiedDate
@Column(name = "updated_at")
private LocalDateTime updatedAt;
}
created_at
은 데이터가 생성될 때만 초기화되므로 updatable을false
로 설정
적용
공통 필드를 추가하고 싶은 엔티티에 BaseEntity
를 상속받도록 설정하면 끝이다!
다음처럼 Mall
에 설정해주고 DB에서 확인하면 Mall
테이블에 created_at
, updated_at
필드가 추가된걸 확인할 수 있다.
@Entity
public class Mall extends BaseEntity {
...
}
댓글남기기