0

I have a model FoodDonation:

@Entity
@TypeConverters(DonatedObjectConverter::class)
data class FoodDonation(@PrimaryKey val id:String,
                        ...
                        @TypeConverters(DonatedObjectConverter::class)
                        var donatedObjects : ArrayList<DonatedObject>
                        ){
    @Ignore
    constructor():this("","",0,"","", ArrayList())
}

The donatedObjects model:

@Entity
data class DonatedObject(@PrimaryKey
                         val foodId: String,
                         val donatedAmount: Int)
                         {
    @Ignore
    constructor():this("",0)
}

My type converter:

class DonatedObjectConverter {
    @TypeConverter
    fun fromArray(foodDonationList:ArrayList<FoodDonation>?): String?  {
        return Gson().toJson(foodDonationList)
    }

    @TypeConverter
    fun toArray(value:String?):ArrayList<FoodDonation>? {
        val listType: Type = object : TypeToken<ArrayList<FoodDonation>>() {}.type

        return Gson().fromJson(value, listType)
    }
}

My database:


@Database(entities = [FoodDonation::class], version = 1, exportSchema = false)
@TypeConverters(DonatedObjectConverter::class)
abstract class FoodDonationDatabase:RoomDatabase() {
    abstract fun foodDonationDao():FoodDonationDao 
    ...
    ...
}

I had created the type converter and all the @TypeConverters(DonatedObjectConverter::class) has put in the files. Why it still doesn't work?

have a great day

  • see https://stackoverflow.com/questions/69210605/problem-with-creating-type-converter-for-room-database/69230072#69230072 – MikeT Sep 26 '22 at 03:17

1 Answers1

0

Try

@Database(entities = [FoodDonation::class], version = 1, exportSchema = false)
@TypeConverters(DonatedObjectConverter::class)
abstract class FoodDonationDatabase:RoomDatabase() {
    abstract fun foodDonationDao():FoodDonationDao 
    ...
    ...
}