Что вам нужно сделать, это сообщить Room, как преобразовать ваш класс в тип, который он умеет хранить, в большинстве случаев это может быть строковое представление.
Сначала создайте класс для ваших TypeConverters ивнутри него объявите функцию, которая может преобразовывать ваш тип в тип и обратно, в который вы хотите, чтобы Room сохранял его.Не забудьте аннотировать эти функции.
class MyTypeConverters {
@TypeConverter
fun appToString(app: App): String = Gson().toJson(app)
@TypeConverter
fun stringToApp(string: String): App = Gson().fromJson(string, App::class.java)
}
Тогда все, что вам нужно сделать, это сообщить Room о ваших преобразователях типов, когда вы объявите свою базу данных
@TypeConverters(MyTypeConverters::class)
abstract class AppDatabase : RoomDatabase() {
..DAO declarations
}
Вот и все.