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을 상속 받아야한다.