데이터베이스의 CREATED_AT, LAST_MODIFIED_AT 컬럼에 값이 담기지 않는 문제

엔티티 등록 일시와 수정 일시를 여러 엔티티에서 사용하기 위해 부모클래스를 다음과 같이 만들었다.

상속할 부모 클래스

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class Auditable {

    @CreatedDate
    @Column(updatable = false)
    private LocalDateTime createdAt;

    @Setter
    @LastModifiedDate
    @Column(name = "LAST_MODIFIED_AT")
    private LocalDateTime modifiedAt;
}

@MappedSuperclass, @EntityListeners(AuditingEntityListener.class) 도 잘 적용해 줬고…

그리고 생성일시 수정일시가 엔티티 저장시점에 자동으로 초기화되도록 @CreatedDate, @LastModifiedDate 를 달아줬다.

Member

@NoArgsConstructor
@Data
@Entity
public class Member extends Auditable {

	...
	...

}

그리고 사용할 Member 엔티티 클래스에서 Auditable을 상속하도록 했다.

근데 막상 Member 엔티티를 저장해보면 상속받은 필드 값들이 죄다 null 로 나오는 것이었다…

필드 자체가 적용은 됐는데 초기화가 되지 않았다.

Untitled

Member와 Auditable 클래스 자체는 제대로 작성한 건 맞는데

👉🏻 원인은 애플리케이션 실행 클래스인 메인 클래스에도 추가로 애너테이션을 달아줘야 하는게 있는데 그걸 빼먹었던 것이 문제.

**@EnableJpaAuditing     👈🏻 이거이거**
@SpringBootApplication
public class PracticeTransactionApplication {

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

}