상세 컨텐츠

본문 제목

Spring Data JPA로 createdDate, modifiedDate 자동 처리하기

Developer/Java

by 웰크 2025. 5. 29. 19:00

본문

JPA에서 날짜 필드 자동으로 처리하는 방법 (@CreatedDate, @LastModifiedDate)

JPA를 사용할 때, 생성일(createdDate)수정일(modifiedDate)을 매번 코드로 직접 넣는 건 번거롭죠. @CreatedDate@LastModifiedDate를 사용하면 자동으로 날짜가 저장되게 만들 수 있습니다.


1. JPA Auditing 설정

가장 먼저 JPA Auditing 기능을 활성화해야 합니다. Spring Boot의 설정 파일에 아래처럼 추가합니다.


// Application.java
@SpringBootApplication
@EnableJpaAuditing
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

2. BaseEntity 생성

공통으로 사용할 날짜 필드는 별도 클래스로 만들어 @MappedSuperclass로 지정합니다.


@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {

    @CreatedDate
    @Column(updatable = false)
    private LocalDateTime createdDate;

    @LastModifiedDate
    private LocalDateTime modifiedDate;
}

3. 실제 Entity에 상속하기

이제 원하는 Entity에 BaseEntity를 상속만 해주면 끝입니다.


@Entity
public class Post extends BaseEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String title;
    private String content;
}

4. application.yml 설정

JPA Auditing이 잘 동작하려면 날짜 포맷 관련 설정도 해두는 게 좋습니다.


spring:
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        jdbc:
          time_zone: UTC
  datasource:
    url: jdbc:h2:mem:testdb

✅ 마무리

이제 새로운 Post 엔티티를 저장하거나 수정하면, createdDatemodifiedDate가 자동으로 갱신됩니다! JPA Auditing을 활용하면 이런 반복 작업을 줄이고 코드도 깔끔하게 유지할 수 있어요.

TIP: 테스트 시에는 H2 DB 콘솔을 열어 select * from post;로 결과를 직접 확인해보는 것도 좋아요.

반응형

관련글 더보기