feat(gift): 신청번호 채번 저장 기준을 분리한다

This commit is contained in:
2026-09-30 17:37:56 +09:00
parent a6ba46e017
commit f3f46c413c
3 changed files with 48 additions and 11 deletions
@@ -9,10 +9,18 @@ import javax.persistence.UniqueConstraint
@Entity
@Table(
name = "gift_application_no_sequence",
uniqueConstraints = [UniqueConstraint(name = "uk_gift_application_no_sequence_date", columnNames = ["sequence_date"])]
uniqueConstraints = [
UniqueConstraint(
name = "uk_gift_application_no_sequence_category_date",
columnNames = ["category_id", "sequence_date"]
)
]
)
class GiftApplicationNoSequence(
@Column(name = "sequence_date", nullable = false, length = 8)
@Column(name = "category_id", nullable = false)
val categoryId: Long,
@Column(name = "sequence_date", nullable = false, length = 6)
val sequenceDate: String,
@Column(name = "last_sequence", nullable = false)
@@ -7,9 +7,19 @@ import org.springframework.data.repository.query.Param
import javax.persistence.LockModeType
interface GiftApplicationNoSequenceRepository : JpaRepository<GiftApplicationNoSequence, Long> {
fun findBySequenceDate(sequenceDate: String): GiftApplicationNoSequence?
fun findByCategoryIdAndSequenceDate(categoryId: Long, sequenceDate: String): GiftApplicationNoSequence?
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("select s from GiftApplicationNoSequence s where s.sequenceDate = :sequenceDate")
fun findBySequenceDateForUpdate(@Param("sequenceDate") sequenceDate: String): GiftApplicationNoSequence?
@Query(
"""
select s
from GiftApplicationNoSequence s
where s.categoryId = :categoryId
and s.sequenceDate = :sequenceDate
"""
)
fun findByCategoryIdAndSequenceDateForUpdate(
@Param("categoryId") categoryId: Long,
@Param("sequenceDate") sequenceDate: String
): GiftApplicationNoSequence?
}