엔티티 클래스에 들어가는 공통적인 필드가 있다. ex) 생성자, 생성시각, 변경자, 변경시각
매번 값을 주입해야하는 번거로움을 해소하기 위해 Spring Data JPA에서 이값을 자동으로 넣어주는 기능을 제공한다.
컨피그 클래스 생성
@Configuration
@EnableJpaAuditing
public class JpaAuritingConfiguration {
}
BaseEntity 생성
- @MappedSuperclass : 자식 클래스에게 매핑 정보를 전달
- @EntityListeners(AuditingEntityListener.class) : 엔티티를 데이터베이스에 적용하기 전후로 콜백 요청
- @CreatedDate : 데이터 생성 날짜 자동 주입
- @LastModifiedDate : 데이터 변경 날짜 자동 주입
@Getter
@Setter
@ToString
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {
@CreatedDate
@Column(updatable = false)
private LocalDateTime createdAt;
@LastModifiedDate
private LocalDateTime updatedAt;
}
BaseEntity를 상속받은 엔티티 클래스
@Entity
@Getter
@Setter
@NoArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@Table(name = "product")
public class Product extends BaseEntity {
...
}
728x90
반응형
'개발공부 > JAVA Spring' 카테고리의 다른 글
[Spring Boot] 예외처리 (0) | 2023.03.28 |
---|---|
[Spring Boot] JPA 영속성 전이 cascade, 고아객체 (0) | 2023.03.27 |
[Spring Boot] JPQL, QueryDSL 쿼리 작성 (0) | 2023.03.10 |
[Spring Boot] Redis config (0) | 2023.03.10 |
shorten url (0) | 2023.03.06 |
댓글