Ошибка при использовании TypeConverter с комнатой: не может выяснить, как сохранить это поле в базе данныхAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка при использовании TypeConverter с комнатой: не может выяснить, как сохранить это поле в базе данных

Сообщение Anonymous »

Я получаю эту ошибку: < /strong> < /p>

Ошибка: не может выяснить, как сохранить это поле в базе данных. Вы можете
подумать о добавлении для него преобразователя типа.
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
)
}
typeConverter: [/b]

Код: Выделить всё

@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"
}

}
DI Module, где предоставляется комната:

Код: Выделить всё

@Singleton
@Provides
fun provideAppDatabase(
application: Application,
statConverter: StatConverter
): Database {
return Room
.databaseBuilder(application, Database::class.java,
Database.DATABASE
)
.addTypeConverter(statConverter)
.fallbackToDestructiveMigration()
.build()
}
edit:
Код TypeConverter работает нормально с другим полем (список) в объекте, но не с списком.

Подробнее здесь: https://stackoverflow.com/questions/730 ... e-this-fie
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»