[SpringData JPA] 생성시간, 수정시간 자동 (JPA Auditing, BaseEntity)
2023. 3. 19. 13:44ㆍJPA
객체를 생성하거나 수정할 때 생성 날짜, 수정 날짜를 관리하는 경우가 많다.
LocalDateTime.now( )을 매번 setter 하기엔 번거롭다.
그리고
그래서 모든 Entity의 생성시간, 수정시간을 관리해주는 JPA Auditing이 있다.
해당 어노테이션은 SpringBootApplication 을 실행하는 클래스에 함께 적용한다.
즉, Entity를 DB에 적용하기 이전, 이후에 콜백 리스너를 요청하게 해주는 어노테이션이다.
[사용 예시]
@MappedSuperclass
@Getter
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@CreatedDate
private LocalDateTime createDate;
@LastModifiedDate
private LocalDateTime modifyDate;
}
- @MappedSuperClass : 다른 Entity가 BaseEntity를 상속하면 BaseEntity가 가지고 있는 속성들과 jpa를 적용한 것을 모두 가져가게 된다. 즉, 슈퍼클래스로 설정하는 어노테이션이다.
- @EntityListeners : 엔티티를 DB에 적용하기 전에 커스텀 콜백 요청, 파라미터로 콜백 요청할 클래스 지정한다. 지금은
Auditing 을 수행하기 위해 AuditingEntityListener 클래스를 인자로 넘긴다.
이제 JPA Auditing 세팅을 마쳤으면 다음과 같이 활성화를 시켜야 한다.
@SpringBootApplication
@EnableJpaAuditing
public class Basic1Application {
public static void main(String[] args) {
SpringApplication.run(Basic1Application.class, args);
}
}
'JPA' 카테고리의 다른 글
[JPA] JPQL - 페이징 (0) | 2023.05.08 |
---|---|
[JPA] JPQL- 기본 쿼리문 예시 (0) | 2023.05.08 |
[Spring Data JPA] 데이터 수정 / Dirty checking 시 save를 별도로 해줘야 한다 ? (0) | 2023.04.13 |
스프링 부트 & JPA 실전 사용 감 익히기 (0) | 2023.02.03 |
Spring JPA 기본 (0) | 2023.02.02 |