MappedSuperclass 에 대하여, 생성시간 클라이언트로 보내기

프로젝트

목록 보기
4/39

어제 쪽지 기능을 프론트-백과 연결하면서 DB에 저장돼있는 쪽지 생성시간을 가져올 수 없는 문제와 마주쳤다.
이유는 createDate가 @MappedSuperclass로 클래스를 위임받아 사용하기 때문이였는데, 이는 엔티티가 아니고 테이블과 매핑되지 않고 단순히 엔티티가 공통으로 사용하는 매핑정보(주로 생성, 수정시간같은)를 모으는 역할이기 때문이다.
DB에 저장은 되지만 데이터를 조회, 이용할 수는 없더라.

@MappedSuperclass 어노테이션을 붙여서 만들었던 클래스

나는 생성시간을 클라이언트로 보내줘야하기때문에 이 방법은 적합하지 않았다.
그래서 방법을 찾았다.

    @Column(nullable = false)
    private LocalDateTime createDate;

2) 생성시에 LocalDateTime을 보내줄 수 있도록 Dto에 추가

3) 위의 createDate를 보내주는 Dto에도 변수를 추가

4) service에도 생성시간이 보여져야하는 곳(쪽지 리스트)에 클라이언트로 정보를 보내준다.

5) 결과 성공

↳ h2 콘솔

↳ 프론트에서 생성시간 포맷을 바꿔줬음

문제가 생긴 덕분에 MappedSuperClass가 뭔지, Embedded Type이 언제 쓰이는지 까지 알게됐다.
밑에 주소를 통해 도움을 받았는데, MappedSuperClass에 대해 찾아보다 보면 거의 많은 블로거들이 김영한님 강의를 정리해놓으신 것 같다.

profile
백엔드를 공부하고 있습니다.

0개의 댓글