-
Android Room Date Type에 대한 에러개발/Android 2023. 6. 9. 15:40
D:\wookhyun\android\compose\udemy\JetNoteApp\app\build\tmp\kapt3\stubs\debug\com\example\jetnoteapp\model\Note.java:19: error: Cannot figure out how to save this field into database. You can consider adding a type converter for it. private final java.util.Date date = null;
Room 데이터베이스를 공부하면서 위 에러를 볼 수 있었다. 안드로이드에서 활용할 수 있는 DB인 SQLite는 date 타입이 존재하지 않는다 따라서 어떻게 저장해야 할지 모르는 SQLite는 에러를 내뱉은 것이다.
이를 위해서 TypeConverter를 추가하면 Entitiy 변경 없이 활용할 수 있다
1.Converter 클래스를 생성한다.
package com.example.jetnoteapp.data import androidx.room.TypeConverter import java.util.Date class Converters { @TypeConverter fun fromTimestamp(value: Long?): Date? { return value?.let { Date(it) } } @TypeConverter fun toTimestamp(value: Date?): Long? { return value?.let { value.time } } }
2. TypeConverters 어노테이션과 함께 클래스를 지정해준다
@Database(entities = [Note::class], version = 1, exportSchema = false) @TypeConverters(Converters::class) // <<-- add this line abstract class NoteDatabase : RoomDatabase() { abstract fun noteDao(): NoteDatabaseDao }
'개발 > Android' 카테고리의 다른 글
Room 사용 시 kapt 에러 (0) 2023.06.09 Material Theme Color System (0) 2023.05.31 Android DateFormat (0) 2022.09.13 RecyclerView ViewType 분기 (0) 2022.09.12 Fragment Container Testing (0) 2022.09.06