ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.