From d1d81b89b8b64547038e0925747d81dee8aec14e Mon Sep 17 00:00:00 2001 From: pricelees Date: Thu, 4 Sep 2025 18:55:24 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20BaseEntity=EB=A5=BC=20=EB=8B=A8?= =?UTF-8?q?=EC=88=9C=20PK=20/=20Audit=20=EC=9C=BC=EB=A1=9C=20=EA=B5=AC?= =?UTF-8?q?=EB=B6=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/common/entity/BaseEntityV2.kt | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main/kotlin/roomescape/common/entity/BaseEntityV2.kt b/src/main/kotlin/roomescape/common/entity/BaseEntityV2.kt index f0f94700..fe07538e 100644 --- a/src/main/kotlin/roomescape/common/entity/BaseEntityV2.kt +++ b/src/main/kotlin/roomescape/common/entity/BaseEntityV2.kt @@ -1,11 +1,6 @@ package roomescape.common.entity -import jakarta.persistence.Column -import jakarta.persistence.EntityListeners -import jakarta.persistence.Id -import jakarta.persistence.MappedSuperclass -import jakarta.persistence.PostLoad -import jakarta.persistence.PrePersist +import jakarta.persistence.* import org.springframework.data.annotation.CreatedBy import org.springframework.data.annotation.CreatedDate import org.springframework.data.annotation.LastModifiedBy @@ -13,17 +8,13 @@ import org.springframework.data.annotation.LastModifiedDate import org.springframework.data.domain.Persistable import org.springframework.data.jpa.domain.support.AuditingEntityListener import java.time.LocalDateTime +import kotlin.jvm.Transient @MappedSuperclass @EntityListeners(AuditingEntityListener::class) abstract class AuditingBaseEntity( - @Id - @Column(name = "id") - private val _id: Long, - - @Transient - private var isNewEntity: Boolean = true -) : Persistable { + id: Long, +) : BaseEntityV2(id) { @Column(updatable = false) @CreatedDate lateinit var createdAt: LocalDateTime @@ -43,6 +34,17 @@ abstract class AuditingBaseEntity( @LastModifiedBy var updatedBy: Long = 0L protected set +} + +@MappedSuperclass +abstract class BaseEntityV2( + @Id + @Column(name = "id") + private val _id: Long, + + @Transient + private var isNewEntity: Boolean = true +) : Persistable { @PostLoad @PrePersist