generated from pricelees/issue-pr-template
refactor: BaseEntity 모듈 분리 및 기존 서비스 적용
This commit is contained in:
parent
2506105c56
commit
ab84b329fd
17
common/persistence/build.gradle.kts
Normal file
17
common/persistence/build.gradle.kts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
plugins {
|
||||||
|
id("org.springframework.boot")
|
||||||
|
kotlin("plugin.spring")
|
||||||
|
kotlin("plugin.jpa")
|
||||||
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation("org.springframework.boot:spring-boot-starter-data-jpa")
|
||||||
|
implementation("com.github.f4b6a3:tsid-creator:5.2.6")
|
||||||
|
|
||||||
|
testRuntimeOnly("com.h2database:h2")
|
||||||
|
testImplementation("org.springframework.boot:spring-boot-starter-test")
|
||||||
|
testImplementation("io.kotest:kotest-runner-junit5:5.9.1")
|
||||||
|
testImplementation("io.kotest.extensions:kotest-extensions-spring:1.3.0")
|
||||||
|
|
||||||
|
implementation(project(":common:utils"))
|
||||||
|
}
|
||||||
@ -1,14 +1,14 @@
|
|||||||
package com.sangdol.roomescape.common.entity
|
package com.sangdol.common.persistence
|
||||||
|
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.Column
|
||||||
|
import jakarta.persistence.EntityListeners
|
||||||
|
import jakarta.persistence.MappedSuperclass
|
||||||
import org.springframework.data.annotation.CreatedBy
|
import org.springframework.data.annotation.CreatedBy
|
||||||
import org.springframework.data.annotation.CreatedDate
|
import org.springframework.data.annotation.CreatedDate
|
||||||
import org.springframework.data.annotation.LastModifiedBy
|
import org.springframework.data.annotation.LastModifiedBy
|
||||||
import org.springframework.data.annotation.LastModifiedDate
|
import org.springframework.data.annotation.LastModifiedDate
|
||||||
import org.springframework.data.domain.Persistable
|
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import kotlin.jvm.Transient
|
|
||||||
|
|
||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
@EntityListeners(AuditingEntityListener::class)
|
@EntityListeners(AuditingEntityListener::class)
|
||||||
@ -31,23 +31,3 @@ abstract class AuditingBaseEntity(
|
|||||||
@LastModifiedBy
|
@LastModifiedBy
|
||||||
var updatedBy: Long = 0L
|
var updatedBy: Long = 0L
|
||||||
}
|
}
|
||||||
|
|
||||||
@MappedSuperclass
|
|
||||||
abstract class PersistableBaseEntity(
|
|
||||||
@Id
|
|
||||||
@Column(name = "id")
|
|
||||||
private val _id: Long,
|
|
||||||
|
|
||||||
@Transient
|
|
||||||
private var isNewEntity: Boolean = true
|
|
||||||
) : Persistable<Long> {
|
|
||||||
|
|
||||||
@PostLoad
|
|
||||||
@PrePersist
|
|
||||||
fun markNotNew() {
|
|
||||||
isNewEntity = false
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun getId(): Long = _id
|
|
||||||
override fun isNew(): Boolean = isNewEntity
|
|
||||||
}
|
|
||||||
@ -0,0 +1,25 @@
|
|||||||
|
package com.sangdol.common.persistence
|
||||||
|
|
||||||
|
import jakarta.persistence.*
|
||||||
|
import org.springframework.data.domain.Persistable
|
||||||
|
import kotlin.jvm.Transient
|
||||||
|
|
||||||
|
@MappedSuperclass
|
||||||
|
abstract class PersistableBaseEntity(
|
||||||
|
@Id
|
||||||
|
@Column(name = "id")
|
||||||
|
private val _id: Long,
|
||||||
|
|
||||||
|
@Transient
|
||||||
|
private var isNewEntity: Boolean = true
|
||||||
|
) : Persistable<Long> {
|
||||||
|
|
||||||
|
@PostLoad
|
||||||
|
@PrePersist
|
||||||
|
fun markNotNew() {
|
||||||
|
isNewEntity = false
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getId(): Long = _id
|
||||||
|
override fun isNew(): Boolean = isNewEntity
|
||||||
|
}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.sangdol.roomescape.admin.infrastructure.persistence
|
package com.sangdol.roomescape.admin.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.AuditingBaseEntity
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
||||||
import com.sangdol.roomescape.common.entity.AuditingBaseEntity
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "admin")
|
@Table(name = "admin")
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
package com.sangdol.roomescape.auth.infrastructure.persistence
|
package com.sangdol.roomescape.auth.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.PersistableBaseEntity
|
||||||
|
import com.sangdol.roomescape.common.dto.PrincipalType
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import org.springframework.data.annotation.CreatedDate
|
import org.springframework.data.annotation.CreatedDate
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
||||||
import com.sangdol.roomescape.common.dto.PrincipalType
|
|
||||||
import com.sangdol.roomescape.common.entity.PersistableBaseEntity
|
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
package com.sangdol.roomescape.payment.infrastructure.persistence
|
package com.sangdol.roomescape.payment.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.PersistableBaseEntity
|
||||||
import jakarta.persistence.Entity
|
import jakarta.persistence.Entity
|
||||||
import jakarta.persistence.Table
|
import jakarta.persistence.Table
|
||||||
import com.sangdol.roomescape.common.entity.PersistableBaseEntity
|
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
package com.sangdol.roomescape.payment.infrastructure.persistence
|
package com.sangdol.roomescape.payment.infrastructure.persistence
|
||||||
|
|
||||||
import jakarta.persistence.*
|
import com.sangdol.common.persistence.PersistableBaseEntity
|
||||||
import com.sangdol.roomescape.common.entity.PersistableBaseEntity
|
|
||||||
import com.sangdol.roomescape.payment.infrastructure.common.*
|
import com.sangdol.roomescape.payment.infrastructure.common.*
|
||||||
|
import jakarta.persistence.*
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "payment_detail")
|
@Table(name = "payment_detail")
|
||||||
|
|||||||
@ -1,13 +1,13 @@
|
|||||||
package com.sangdol.roomescape.payment.infrastructure.persistence
|
package com.sangdol.roomescape.payment.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.PersistableBaseEntity
|
||||||
|
import com.sangdol.roomescape.payment.infrastructure.common.PaymentMethod
|
||||||
|
import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus
|
||||||
|
import com.sangdol.roomescape.payment.infrastructure.common.PaymentType
|
||||||
import jakarta.persistence.Entity
|
import jakarta.persistence.Entity
|
||||||
import jakarta.persistence.EnumType
|
import jakarta.persistence.EnumType
|
||||||
import jakarta.persistence.Enumerated
|
import jakarta.persistence.Enumerated
|
||||||
import jakarta.persistence.Table
|
import jakarta.persistence.Table
|
||||||
import com.sangdol.roomescape.common.entity.PersistableBaseEntity
|
|
||||||
import com.sangdol.roomescape.payment.infrastructure.common.PaymentMethod
|
|
||||||
import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus
|
|
||||||
import com.sangdol.roomescape.payment.infrastructure.common.PaymentType
|
|
||||||
import java.time.OffsetDateTime
|
import java.time.OffsetDateTime
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
package com.sangdol.roomescape.reservation.infrastructure.persistence
|
package com.sangdol.roomescape.reservation.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.PersistableBaseEntity
|
||||||
import jakarta.persistence.Entity
|
import jakarta.persistence.Entity
|
||||||
import jakarta.persistence.EnumType
|
import jakarta.persistence.EnumType
|
||||||
import jakarta.persistence.Enumerated
|
import jakarta.persistence.Enumerated
|
||||||
import jakarta.persistence.Table
|
import jakarta.persistence.Table
|
||||||
import com.sangdol.roomescape.common.entity.PersistableBaseEntity
|
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
package com.sangdol.roomescape.reservation.infrastructure.persistence
|
package com.sangdol.roomescape.reservation.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.AuditingBaseEntity
|
||||||
import jakarta.persistence.Entity
|
import jakarta.persistence.Entity
|
||||||
import jakarta.persistence.EnumType
|
import jakarta.persistence.EnumType
|
||||||
import jakarta.persistence.Enumerated
|
import jakarta.persistence.Enumerated
|
||||||
import jakarta.persistence.Table
|
import jakarta.persistence.Table
|
||||||
import com.sangdol.roomescape.common.entity.AuditingBaseEntity
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "reservation")
|
@Table(name = "reservation")
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
package com.sangdol.roomescape.schedule.infrastructure.persistence
|
package com.sangdol.roomescape.schedule.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.PersistableBaseEntity
|
||||||
|
import com.sangdol.roomescape.common.util.MdcPrincipalId
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import org.springframework.data.annotation.CreatedBy
|
import org.springframework.data.annotation.CreatedBy
|
||||||
import org.springframework.data.annotation.CreatedDate
|
import org.springframework.data.annotation.CreatedDate
|
||||||
import org.springframework.data.annotation.LastModifiedDate
|
import org.springframework.data.annotation.LastModifiedDate
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
||||||
import com.sangdol.roomescape.common.entity.PersistableBaseEntity
|
|
||||||
import com.sangdol.roomescape.common.util.MdcPrincipalId
|
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
import java.time.LocalTime
|
import java.time.LocalTime
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
package com.sangdol.roomescape.store.infrastructure.persistence
|
package com.sangdol.roomescape.store.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.AuditingBaseEntity
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
import org.springframework.data.jpa.domain.support.AuditingEntityListener
|
||||||
import com.sangdol.roomescape.common.entity.AuditingBaseEntity
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@EntityListeners(AuditingEntityListener::class)
|
@EntityListeners(AuditingEntityListener::class)
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package com.sangdol.roomescape.theme.infrastructure.persistence
|
package com.sangdol.roomescape.theme.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.AuditingBaseEntity
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import com.sangdol.roomescape.common.entity.AuditingBaseEntity
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "theme")
|
@Table(name = "theme")
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
package com.sangdol.roomescape.user.infrastructure.persistence
|
package com.sangdol.roomescape.user.infrastructure.persistence
|
||||||
|
|
||||||
|
import com.sangdol.common.persistence.AuditingBaseEntity
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import com.sangdol.roomescape.common.entity.AuditingBaseEntity
|
|
||||||
|
|
||||||
@Entity
|
@Entity
|
||||||
@Table(name = "users")
|
@Table(name = "users")
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user