728x90
테이블을 설계를 할 때 필수적으로 관리되는 Column이 존재합니다. 생성 시간, 수정 시간, 생성한 사람, 수정한 사람 등을 예로 들 수 있습니다. 모든 도메인에 위에 나열한 column들을 생성하여 관리하기에는 번거로움이 있습니다. 이러한 문제를 해결하기 위해 Spring Data JPA에서 Auditing 기능을 제공해줍니다.
다음은 BaseTimeEntity를 생성하여 제공할 데이터들의 정의해줍니다.
...
@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseTimeEntity {
@CreatedDate
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
}
@Getter를 제외한 다른 Annotation들의 기능은 다음과 같습니다.
- @MappedSuperclass = JPA Entity class가 해당 class를 상속받을 경우 createdDate, modifiedDate를 column으로 인식한다.
- @EntityListeners(AuditingEntityListener.class) = 해당 class에 Auditing 기능을 추가한다.
- @CreatedDate = Entity 생성 후 저장 시점의 시간을 자동 저장한다.
- @LastModifiedDate = Entity 수정 후 저장 시점의 시간을 자동 저장한다.
...
@Configuration
@ComponentScan
@EnableJpaAuditing // 추가
public class AutoAppConfig {
}
마지막으로 @EnableJpaAuditing 어노테이션을 Config 파일에 추가하여 auditing 기능을 사용할 수 있게 만들어줍니다.
Entity 코드를 수정 및 추가를 하지 않았는데 CREATE_DATE, MODIFIED_DATE column이 추가된 것을 확인할 수 있습니다.
PET Entity 코드 - https://hangjastar.tistory.com/219
728x90
'Java, JavaScript > Spring Boot' 카테고리의 다른 글
[Spring Boot] 동물병원 진료 데이터베이스 설계 (0) | 2021.08.31 |
---|---|
[Spring Boot] @Autowired를 사용하지 않고 Bean 가져오기 (0) | 2021.08.27 |
[Spring Boot] IntelliJ Live Templates 생성하는 방법 (0) | 2021.08.26 |
[Spring Boot] Entity 생성은 뭐야? (0) | 2021.08.20 |
[Spring Boot] Intellij 유용한 단축키 모음 (0) | 2021.08.18 |