728x90
반응형

- 주로 Auditing 용도

- 반복적인 코딩을 줄일 수 있음

 

@PrePersist - insert가 실행되기 전

@PreUpdate - update가 실행되기 전

@PreRemove - delete가 실행되기 전

@PostPersist - insert가 실행된 후

@PostUpdate - update가 실행된 후

@PostRemove - delete가 실행된 후

@PostLoad - select가 실행된 후

 

- 실제로는 insert, update 직전에 공통적으로 해줄 작업이 있어서 @PrePersist, @PreUpdate 두 가지가 자주 쓰임

- @EntityListeners class는 bean을 주입받지 못한다

 

★ Spring에서 기본으로 제공하는 Audit이 있음 -> @EnableJpaAuditing

 

- 한 번에 간편하게 해결할 수 있는 BaseEntity

@Data
@MappedSuperclass // 이 클래스의 필드를 상속받는 클래스의 컬럼으로 넣음
@EntityListeners(value = AuditingEntityListener.class)
public class BaseEntity {
    @CreatedDate
    private LocalDateTime createdAt;

    @LastModifiedDate
    private LocalDateTime updatedAt;
}

 

※ 출처 - 패스트캠퍼스, "안정적인 서비스를 위한 스프링DATA와 Security - JPA 프로그래밍"

반응형

'JPA' 카테고리의 다른 글

spring jpa db 초기화 설정  (0) 2022.03.04
Spring JPA 영속성 컨텍스트  (0) 2022.02.28
@OneToOne - 1:1 연관관계 매핑  (0) 2022.02.24
@Entity 기본속성  (1) 2022.02.17