고을마을 : 나의 코딩 이야기

항해99 7기 16일차 TIL[Timestamped- @MappedSuperclass ] 본문

항해99 7기/TIL(Today I Learned)

항해99 7기 16일차 TIL[Timestamped- @MappedSuperclass ]

고을마을 2022. 5. 25. 01:45

2022년 5월 24일 항해 16일차.

오늘도 어김없이 주특기 입문 커리큘럼을 수행했으며 개인과제를 수행했다.

 

@Getter
@MappedSuperclass // Entity가 자동으로 컬럼으로 인식합니다.
@EntityListeners(AuditingEntityListener.class) // 생성/변경 시간을 자동으로 업데이트합니다.
public abstract class Timestamped {   //추상으로 달아둘것! 상속이 되어야만 쓸수있게 해줘야함.

    @CreatedDate //생성시간
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createdAt;

    @LastModifiedDate //수정시간
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime modifiedAt;
}

 

게시판을 작성할때 자동적으로 생성시간, 수정시간이 나올수 있도록 하기 위한 코드를 작성했다.

 

근데 ARC에서 POST하고 GET으로 확인해봤을때

생성시간과 수정시간이 계속 null로 잡혔다! 

 

@MappedSuperclass 
@EntityListeners 까지 작성해놨는데도 계속 null로 잡혀서 한참을 코드를 뒤져봤다.

 

원인은 바로! Application에 @EnableJpaAuditing 을 넣어두지 않았기 때문!

 

public class Memo extends Timestamped 까지 해두고도 Application에 @EnableJpaAuditing 을 넣어두지 않았다니...

코드를 작성하면서 빠진게 없는지 수시로 체크해봐야겠다.

 


오늘 컨트롤러를 ARC에서 확인해본 결과

조회, 생성, 수정, 삭제까지 잘 이루어지는 것을 확인했다.

 

이제 html을 작성해봐야하는데 제발 내가 의도했던대로 잘 구현됐으면 좋겠다.

내일도 화이팅.