Ошибка: не может выяснить, как сохранить это поле в базе данных. Вы можете
подумать о добавлении для него преобразователя типа.
Private Final java.util.list stats = null; < /p>
< /blockquote>
Я не могу понять. Я добавил TypeConverter в базу данных, но все же получаю эту ошибку. Есть идеи, что я делаю не так?
Код: Выделить всё
@Entity
data class Detail(
@PrimaryKey val id: Int,
val stats: List,
val types: List
){
data class Stat(
val baseStat: Int,
val stat: String
)
}
Код: Выделить всё
@ProvidedTypeConverter
class StatConverter @Inject constructor(
private val moshi: Moshi
){
@TypeConverter
fun fromJson(value: String): List? {
val listType = Types.newParameterizedType(List::class.java, Detail.Stat::class.java)
val adapter: JsonAdapter = moshi.adapter(listType)
return adapter.fromJson(value)
}
@TypeConverter
fun toJson(type: List?): String {
val listType = Types.newParameterizedType(List::class.java, Detail.Stat::class.java)
val adapter: JsonAdapter = moshi.adapter(listType)
return adapter.toJson(type)
}
}
Код: Выделить всё
@Database(entities = [Detail::class], version = 1, exportSchema = true)
@TypeConverters(StatConverter::class)
abstract class Database : RoomDatabase() {
abstract fun detailDao(): DetailDao
companion object{
const val DATABASE = "database"
}
}
Код: Выделить всё
@Singleton
@Provides
fun provideAppDatabase(
application: Application,
statConverter: StatConverter
): Database {
return Room
.databaseBuilder(application, Database::class.java,
Database.DATABASE
)
.addTypeConverter(statConverter)
.fallbackToDestructiveMigration()
.build()
}
Код TypeConverter работает нормально с другим полем (список) в объекте, но не с списком.
Подробнее здесь: https://stackoverflow.com/questions/730 ... e-this-fie