@PreUpdate
와 @PrePersist
는 JPA에서 사용되는 라이프사이클 콜백 어노테이션입니다. 엔티티의 상태가 DB에 저장되기 전에
동작이 수행되도록 지정하는 데 사용됩니다.
엔티티의 상태가 업데이트 되기전에 실행되는 메소드입니다.
@Entity
public class YourEntity {
// fields, getters, setters, etc.
@PreUpdate
public void beforeUpdate() {
// Your logic before the entity is updated
}
}
엔티티가 처음으로 저장되기 직전에 호출됩니다. 엔티티가 저장되기 전에 필요한 초기화 작업을 수행하거나 생성일을 설정하는 작업에 사용됩니다.
@Entity
public class YourEntity {
// fields, getters, setters, etc.
@PrePersist
public void beforePersist() {
// Your logic before the entity is persisted (stored)
}
}
import java.time.LocalDateTime;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.PrePersist;
import javax.persistence.PreUpdate;
@Entity
public class Book {
@Id
private Long id;
private String title;
private LocalDateTime createdAt;
private LocalDateTime updatedAt;
// Constructors, getters, setters, etc.
@PrePersist
public void beforePersist() {
// 엔터티가 저장되기 전에 호출되는 메서드
this.createdAt = LocalDateTime.now();
this.updatedAt = this.createdAt;
}
@PreUpdate
public void beforeUpdate() {
// 엔터티가 업데이트되기 전에 호출되는 메서드
this.updatedAt = LocalDateTime.now();
}
}
@PrePersist
는 엔티티가 저장되기 전에 호출되는 메소드이고 @PreUpdate
는 엔티티가 업데이트되기 전에 호출되는 메소드입니다.