스프링 부트, 입문!

준비중..

스프링 부트, 입문!

기본 게시판 만들기!

17 생성 및 수정 시각, 상속 처리

# 생성 및 수정 시각, 상속 처리 ## 미션 --- 데이터 등록 및 수정 시, 해당 시간을 DB에 기록하게 하시오. ![클라우드스터딩-스프링부트-생성-및-수정-시각-확인](https://i.imgur.com/2RJYpaS.png) ## 개념 --- #### ⭐ JPA Auditing이란? 엔티티의 시간 관리 도구이다. 일반적 엔티티는 생성 및 수정 시각을 가지는데, Auditing은 이를 돕는다. 엔티티에 생성과 수정 정보는 왜 필요할까? 당신은 관심 블로그 글이 언제 작성됐는지, 최종 수정은 언제인지 아는 것과 모르는 것은 천지 차이! 모든 데이터 또한 그렇다. 이는 모든 엔티티에 생성과 수정 필드가 있어야 함을 암시하는데, Auditing은 간단한 어노테이션으로 이를 돕는다. ![클라우드스터딩-스프링-부트-JPA-Auditing](https://i.imgur.com/bio0iN7.png) ## 튜토리얼 --- #### ⭐ 전체 구조 ![클라우드스터딩-스프링부트-생성-및-수정-시각-등록](https://i.imgur.com/ww46edB.png) #### ⭐ 엔티티 클래스 1) 생성: "entity/BaseTime" ``` @Getter @MappedSuperclass // 부모 클래스로 선언! 자식 클래스는, 해당 클래스의 필드를 Colunm으로 생성! @EntityListeners(AuditingEntityListener.class) // Auditing 기능을 추가! public class BaseTime { @CreatedDate // 엔티티 생성 시, 당시 시각을 자동 기입! private LocalDateTime createdAt; @LastModifiedDate // 엔티티 수정 시, 당시 시각을 자동 기입! private LocalDateTime updatedAt; } ``` 2) 상속 받기: "entity/Article" ``` ... public class Article extends BaseTime { ... } ``` #### ⭐ 어플리케이션 3) JPA Auditing 적용: "Application 클래스"에 적용! ~~메인 메소드 있는 놈.~~ ``` @EnableJpaAuditing // JPA Auditing 활성화 @SpringBootApplication public class MyblogApplication { public static void main(String[] args) { SpringApplication.run(MyblogApplication.class, args); } } ``` #### ⭐ 확인하기 4) DB 결과 확인 ![클라우드스터딩-스프링부트-생성-및-수정-시각-확인](https://i.imgur.com/2RJYpaS.png) ## 훈련하기 --- - JPA Auditing이란 무엇인지 조사하여 설명하시오. ## 면접 준비 --- - 상속과 중복 제거, 그리고 리팩터링을 설명? - 프로젝트 진행 중, 상속 적용 사례가 있다면?