EntityListeners?

Entity가 삽입, 삭제, 수정, 조회 등의 작업을 할 때 전, 후에 작업을 하기 위한 어노테이션

Example

데이터가 삽입되기 전, 수정되기 전 createdAt과 updatedAt 시간을 조작해야 합니다.

@SpringBootApplication
**@EnableJpaAuditing**
public class SampleApplication {

    public static void main(String[] args) {
        SpringApplication.run(SampleApplication.class, args);
    }
}

Spring Data JPA에서 제공하는 Auditing 기능을 제공하기 위해, 엔티티에 변경시점 감지를 위한 어노테이션을 붙여줍니다.

@Setter
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)  // AuditingEntityListener.class를 EntityListners로 등록
@Slf4j
public abstract class BaseEntity {

  @CreatedDate
  @Temporal(TemporalType.TIMESTAMP)
  private LocalDateTime createdAt;

  @CreatedBy
  private Long createdBy;

  @LastModifiedDate
  @Column
  @Temporal(TemporalType.TIMESTAMP)
  private LocalDateTime updatedAt;

  @LastModifiedBy
  private Long updatedBy;

  @Column
  @Temporal(TemporalType.TIMESTAMP)
  private LocalDateTime deletedAt;

  @Column(updatable = false)
  private Long deletedBy;
  
	...
  
  }