yuns
Database 내의 시간과 관련된 column타입 kotlin에서 적용하기 본문
반응형
Kotlin 내의 여러가지 DataType로 시간과 관련된 column을 추가하려 했으나 에러가 발생했다
"Serializer has not been found for type 'LocalDate'. To use context serializer as fallback, explicitly annotate type or property with @Contextual"
그래서, 다음과 같이 해결함
Serialization.kt 라는 파일명에 아래 코드를 추가했고, (내 코드 상에서의 위치는 내 마음대로 정했을 뿐, 원하는 곳에 선언해주면 됨
@OptIn(ExperimentalSerializationApi::class)
@Serializer(forClass = LocalDate::class)
class LocalDateSerializer : KSerializer<LocalDate> {
private val formatter: DateTimeFormatter = DateTimeFormatter.ISO_LOCAL_DATE
override fun serialize(encoder: Encoder, value: LocalDate) {
encoder.encodeString(value.format(formatter))
}
override fun deserialize(decoder: Decoder): LocalDate {
return LocalDate.parse(decoder.decodeString(), formatter)
}
}
그리고, 원 코드에 위에 선언한 클래스를 임포트한 뒤, LocalDate로 선언한 곳에 가서 아래와 같이 위에 한 줄을 추가했다.
@Serializable(with = LocalDateSerializer::class)
var startDate: LocalDate,
반응형
'linux, github, module 에러 정리' 카테고리의 다른 글
Kotlin Serializable 에러 (0) | 2023.12.31 |
---|---|
Jupyter error "ModuleNotFoundError: No module named 'jupyterlab'" (1) | 2023.01.29 |
m1에 jupyter-lab 설치하기 (0) | 2021.10.13 |
비밀번호 입력 없이 서버에 접속하기 (0) | 2021.07.16 |
gpu 사용량 확인하기 (0) | 2021.06.02 |
Comments