최대 1 분 소요

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 {
  ...
}

카테고리:

업데이트:

댓글남기기