Spring Data JPA Auditing BaseEntity

박미소·2024년 2월 2일
0

코틀린

목록 보기
40/44
@Configuration
@EnableJpaAuditing
class JpaAuditingConfig
@MappedSuperclass
@EntityListeners(AuditingEntityListener::class)
abstract class BaseEntity {

	@CreatedDate
    @Column(columnDefinition = "TIMESTAMP(6)", name = "created_at", nullable = false, updatable = false)
    var createdAt: LocalDateTime = LocalDateTime.now()
        protected set

	@LastModifiedDate
    @Column(columnDefinition = "TIMESTAMP(6)", name = "updated_at", nullable = false)
    var updatedAt: LocalDateTime = LocalDateTime.now()
        protected set
}

엔티티가 생성되고 변경되는 시점을 감지해 생성시각, 수정시각을 기록할 수 있다.

먼저 EnableJpaAuditing 어노테이션을 사용하여, Auditing을 활성화 해야한다.

@Entity
@Table(name = "posts")
class Post private constructor(
    _title: String,
    _content: String,
    _member: Member
) : BaseEntity() {
@Column(name = "ended_at")
var endedAt: LocalDateTime = createdAt.plusDays(14)
    private set
    
    ...
fun from() = PostResponse(
        id = id,
        title = title,
        content = content,
        member = member.nickname,
        createdAt = createdAt,
        endedAt = endedAt
        )

이후 엔티티 클래스에 상속받고 사용한다.

0개의 댓글