728x90
[SpringBoot]JPA Auditing 사용법(생성일시, 수정일시 자동 반영)
이번 프로젝트에서 아래 사진처럼 테이블에 생성시간과 수정시간 컬럼을 만들고 Service 로직 부분에서 시간을 생성과 수정을 하고 있었습니다.
그런데 JPA Auditing을 사용하면 테이블과 컬럼만 생성하면 insert와 update를 할 때 자동으로 생성 및 변경을 해줍니다.. 처음 알았고 써보는데 신세계네요. ㅋ_ㅋ


아래에 사용방법을 정리해보겠습니다.
1. 의존성 추가
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
2. JPA Auditing 활성화
메인 애플리케이션 클래스에 @EnableJpaAuditing 어노테이션을 추가해줍니다.
@SpringBootApplication
@EnableJpaAuditing
public class BitcoinApplication {
public static void main(String[] args) {
SpringApplication.run(BitcoinApplication.class, args);
}
}
3. Entity 테이블 및 컬럼 생성(데이터베이스에도 테이블 및 컬럼 생성)
Entity에 테이블과 컬럼 생성해줍니다.
Entity에 @EntityListeners 어노테이션을 추가해줍니다.
@EntityListeners(AuditingEntityListener.class)
@Entity(name="user")
public class User {
}
컬럼 명칭은 재량껏, 본인 편한대로 하시면 됩니다
컬럼명 위에 아래 어노테이션을 추가해줍니다.
생성일시 -> @CreatedDate
수정일시 -> @LastModifiedDate
@CreatedDate
@Column(updatable = false, name = "created_at")
private LocalDateTime createdAt;
@LastModifiedDate
@Column(name = "updated_at")
private LocalDateTime updatedAt;
4. 테이블 save 및 확인
저장 로직을 구현하고 함수 실행하여 데이터를 저장합니다.
public User saveUser(Long kakaoId, String nickname) {
User user = userRepository.findByKakaoId(kakaoId);
if (user == null) {
user = new User(kakaoId, nickname);
user.setChangeNickname(nickname);
userRepository.save(user);
}
return user;
}
DB에서 조회해보면 잘 동작합니다.

아주 간단하게 자동으로 생성일자와 수정일자를 저장해주는 JPA Auditing 사용법에 대해 알아보았습니다. 엄청 유용하네요.
감사합니다~
728x90
'IT > Spring' 카테고리의 다른 글
스프링 프레임워크란 무엇인가? (2) | 2024.09.11 |
---|---|
[SpringBoot]MySQL 연동시 에러 Public key retrieval is not allowed 해결방법 (0) | 2024.05.07 |
[SpringBoot] War 파일 빌드 및 생성하기 (0) | 2024.05.05 |
[Spring Boot]@Scheduled를 이용한 스케줄러 구현하기 (1) | 2024.05.04 |