IT공부/Spring Boot
[Spring Boot] 생성일 자동 설정 비교
Johnnnn
2025. 4. 8. 11:40
✅ @CreatedDate vs @CreationTimestamp
@CreatedDate | @CreatedTimestamp | |
제공 | Spring Data JPA | Hibernate |
조건 | @EnableJpaAuditing + @EntityListeners 필요 | 별다른 설정 없이 작동 |
작동 시점 | persist() 전 단계에 Spring이 값 지정 | Hibernate가 insert 시점에 DB에 넣음 |
장점 | 더 유연하게 커스터마이징 가능 | 설정이 간단하고 빠르게 적용됨 |
단점 | 설정 필요 (Auditing) | Spring Data Auditing과 중복되면 ❌ 충돌 가능 |
🟢 요약
- 둘 다 "생성일 자동 설정"이지만 작동 방식이 다르고, 중복해서 쓰면 안 됨!
- Spring에서 BaseEntity 만들어서 @CreatedDate 사용하는 걸 선호하는 추세라고함.
→ 그럼 하나의 방식으로 전 엔티티가 관리돼서 협업에 유리하다.
❌ 주의할 점!
프로젝트에 @EnableJpaAuditing 이 설정돼 있어야 함.
보통 @SpringBootApplication 클래스 위에 추가함.
@EnableJpaAuditing
@SpringBootApplication
public class MyApplication { ... }
그리고 AuditingEntityListener도 @EntityListeners에 꼭 지정돼야 작동함.