JPA를 사용할 때, 생성일(createdDate)과 수정일(modifiedDate)을 매번 코드로 직접 넣는 건 번거롭죠. @CreatedDate
와 @LastModifiedDate
를 사용하면 자동으로 날짜가 저장되게 만들 수 있습니다.
가장 먼저 JPA Auditing 기능을 활성화해야 합니다. Spring Boot의 설정 파일에 아래처럼 추가합니다.
// Application.java
@SpringBootApplication
@EnableJpaAuditing
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
공통으로 사용할 날짜 필드는 별도 클래스로 만들어 @MappedSuperclass
로 지정합니다.
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public abstract class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdDate;
@LastModifiedDate
private LocalDateTime modifiedDate;
}
이제 원하는 Entity에 BaseEntity
를 상속만 해주면 끝입니다.
@Entity
public class Post extends BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String title;
private String content;
}
JPA Auditing이 잘 동작하려면 날짜 포맷 관련 설정도 해두는 게 좋습니다.
spring:
jpa:
hibernate:
ddl-auto: update
properties:
hibernate:
jdbc:
time_zone: UTC
datasource:
url: jdbc:h2:mem:testdb
이제 새로운 Post
엔티티를 저장하거나 수정하면, createdDate
와 modifiedDate
가 자동으로 갱신됩니다! JPA Auditing을 활용하면 이런 반복 작업을 줄이고 코드도 깔끔하게 유지할 수 있어요.
TIP: 테스트 시에는 H2 DB 콘솔을 열어 select * from post;
로 결과를 직접 확인해보는 것도 좋아요.
Spring Cloud config - 구성 및 적용 (0) | 2019.11.22 |
---|---|
Spring Cloud config - 설명 (0) | 2019.11.21 |
JSP에서 파일 업로드 및 엑셀파일 JSON으로 만들기 (1) | 2016.12.02 |
자바 공부에 필요한 사이트 정리 (0) | 2016.04.26 |