오답노트

[Spring JPA] Auditing 본문

Java/Spring

[Spring JPA] Auditing

권멋져 2023. 7. 19. 14:39

Listener

JPA에는 Listener가 있는데, curd를 할 때, Anotation을 활용해 전후로 원하는 로직을 만들어 넣을 수 있다.

 

https://www.baeldung.com/jpa-entity-lifecycle-events#lifecycle

 

Auditing

Listener를 통해서 자주 사용하는 기능을 Spring에서 Anotation으로 미리 만들어 놨다. (ex. CreatedDate)

이를 사용하기 위해서 AuditingEntityListener를 상속 받으면 된다.

 

@Data
@MappedSuperclass
@EntityListeners(value = AuditingEntityListener.class)
public class BaseEntity {

    @CreatedDate
    private LocalDateTime createdAt;

    @LastModifiedDate
    private LocalDateTime updatedAt;

}

Listener를 상속 받아 해당 Entity가 생성되거나 수정되면 timestamp를 찍는다.

@Entity
@NoArgsConstructor
@Data
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
public class BookReviewInfo extends BaseEntity{

    @Id
    @GeneratedValue
    private Long id;
    private Long bookId;
    private float avgReviewScore;
    private int reviewCount;

}

BaseEntity를 상속 받아 해당 Entity가 생성되거나 수정되면 timestamp를 찍는다.

@EnableJpaAuditing
@SpringBootApplication
public class BookmanagerApplication {

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

}

Listener를 사용하기 위해 @EnableJpaAuditing을 상속 받아야한다.

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

[Spring JPA] Entity Relations  (0) 2023.07.19
[Spring JPA] Query Method  (0) 2023.07.19
[Spring JPA] H2 In-Memory DB  (0) 2023.07.18
[Spring] 코드 Test하기  (0) 2023.07.17
[Spring] Server to Server 예제 (네이버 API)  (0) 2023.07.14