728x90
JPA에서 코드로는 Enum 클래스로 작성하고 MySQL 에서 정수형으로 값을 매핑하고 싶을때 Converter를 사용합니다
import javax.persistence.*
enum class Status(val value: Int) {
ACTIVE(1), INACTIVE(0);
companion object {
fun fromValue(value: Int): Status = values().first { it.value == value }
}
}
@Converter
class StatusConverter : AttributeConverter<Status, Int> {
override fun convertToDatabaseColumn(attribute: Status?): Int? {
return attribute?.value
}
override fun convertToEntityAttribute(dbData: Int?): Status? {
return dbData?.let { Status.fromValue(it) }
}
}
@Entity
class User(
@Id
val id: Long,
@Convert(converter = StatusConverter::class)
val status: Status
)
'Java > JPA' 카테고리의 다른 글
OneToOne 관계에서의 지연 로딩과 N+1 문제 심층 분석 (0) | 2025.02.21 |
---|---|
Spring Data JPA - join, 페이징 정리 (0) | 2024.08.21 |