Вам нужно использовать конвертер. Я преобразую список объектов в строку JSON через библиотеку GSON (поэтому добавьте зависимость в ваш файл Gradle):
implementation 'com.google.code.gson:gson:2.8.2'
Сначала создайте конвертер с аннотацией @TypeConverter
для преобразования вашего списка (здесь мой пример с классом с именем Output):
class OutputConverter {
@TypeConverter
fun fromOutputList(outputs: List<Output>?): String? {
if (outputs == null) {
return null
}
val gson = Gson()
val type = object : TypeToken<List<Output>>() {}.type
return gson.toJson(outputs, type)
}
@TypeConverter
fun toOutputList(outputString: String?): List<Output>? {
if (outputString == null) {
return null
}
val gson = Gson()
val type = object : TypeToken<List<Output>>() {}.type
return gson.fromJson(outputString, type)
}
}
Затем вам нужно объявить конвертер в вашем классе базы данных:
@Database(entities = [(YourParentClass::class)], version = 1)
@TypeConverters(OutputConverter::class)
abstract class YourDataBase : RoomDatabase() {
abstract fun yourDao(): YourDao
}