본문 바로가기
Programming/Spring

JPA | BaseTimeEntity: 생성/수정 시간 자동 설정

by lucid_07 2023. 10. 9.
반응형

BaseTimeEntity

모든 Entity의 상위 클래스에서 createdDate, updateDate를 자동으로 관리해 줌.

Date자료형보다 LocalDate, LocalDateTime을 사용할 것을 추천.

BaseTimeEntity 추상클래스를 구현하고 Entity 클래스들에게 상속시켜 사용한다.

BaseTimeEntity 추상클래스

@Getter
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)  // Auditing 기능 포함
public abstract class BaseTimeEntity {

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

    @LastModifiedDate
    private LocalDateTime modifiedDate;
}

@MappedSuperclass: JPA Entity 클래스들이 BaseTimeEntity를 상속할 경우 createdDate, modifiedDate 두 필드도 컬럼으로 인식하도록 설정

@CreatedDate: 생성시 날짜 자동 생성

@LastModifiedDate: 수정시 날짜 자동 갱신

다른 Entity에서 사용할 때에는 다음과 같이 상속하여 사용

public class Members extends BaseTimeEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    @Column(length = 20, nullable = false)
    private String username;

    @Column(nullable = false)
    private String password;

    @Column(length = 10)
    private String name;

    @Enumerated(EnumType.STRING)
    private MembersRole role;
}

메인클래스에서 JPA Auditing을 활성화 해야한다

@EnableJpaAuditing // JPA Auditing 활성화
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

참고 자료

https://europani.github.io/spring/2021/10/05/027-baseTimeEntity.html

반응형

'Programming > Spring' 카테고리의 다른 글

프로퍼티 | 토막글  (1) 2023.11.28
Spring  (0) 2023.10.09