From d0f6e0fe0c66880616f267af2da44137c2a0174b Mon Sep 17 00:00:00 2001 From: pricelees Date: Fri, 15 Aug 2025 18:22:08 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Auditing=20=EC=97=86=EC=9D=B4=20Persist?= =?UTF-8?q?able=EB=A7=8C=20=EC=A0=95=EC=9D=98=EB=90=9C=20BaseEntity=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/common/entity/BaseEntity.kt | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/kotlin/roomescape/common/entity/BaseEntity.kt b/src/main/kotlin/roomescape/common/entity/BaseEntity.kt index 439f62ef..ae6d1516 100644 --- a/src/main/kotlin/roomescape/common/entity/BaseEntity.kt +++ b/src/main/kotlin/roomescape/common/entity/BaseEntity.kt @@ -33,3 +33,22 @@ abstract class BaseEntity( abstract override fun getId(): Long? } + +@MappedSuperclass +abstract class PersistableBaseEntity( + @Id + @Column(name = "id") + private val _id: Long, + + @Transient + private var isNewEntity: Boolean = true +): Persistable { + @PostLoad + @PostPersist + fun markNotNew() { + isNewEntity = false + } + + override fun isNew(): Boolean = isNewEntity + override fun getId(): Long = _id +}