Java Persistence API에서 제공하는 기능 중 하나로, 엔터티의 변경 이력을 추적하고 관리하는 데 사용된다.DB에서 특정 테이블의 Record가 언제 생성되었고, 언제 마지막으로 수정되었는지를 추적하는 데 활용된다.Created Date), 수정일자(Last Modified Date), 생성자(Created By), 수정자(Last Modified By) 4가지의 핵심적인 이벤트를 추적하게 된다.@EnableJpaAuditing 어노테이션을 사용하여 Auditing 기능을 활성화시킨다.@EnableJpaAuditing
@SpringBootApplication
class Application
fun main(args: Array<String>) {
runApplication<Application>(*args)
}
@MappedSuperclass
@EntityListeners(AuditingEntityListener::class)
abstract class BaseEntity {
@CreatedDate
@Column(nullable = false, updatable = false)
var createdAt: LocalDateTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault())
@LastModifiedDate
@Column(nullable = false)
var modifiedAt: LocalDateTime = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault())
}
@MappedSuperclass@EntityListeners(AuditingEntityListener::class)Entity에서 이벤트가 발생할 때마다 Auditing처럼 특정 기능을 수행한다.✅
var으로 정의해주어야 런타임 에러가 발생하지 않는다.
@Entity
class User(
@Column(length = 30, nullable = false)
private val name: String,
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
val id: Long
): BaseEntity() {
}
Spring Data JPA with Kotlin - Entity Auditing
Kotlin Jpa Auditing - Entity 수정, 생성기간 저장
스프링 Data JPA: Auditing 적용 방법 [Kotlin]