Здесь мне нужно сохранить несколько настраиваемых объектов в одной таблице в базе данных комнаты. Эти вещи работают в одном преобразователе типов, но когда это происходит в случае нескольких преобразователей типов, возникает ошибка.
import androidx.room.Entity
import androidx.room.PrimaryKey
import androidx.room.TypeConverter
import androidx.room.TypeConverters
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import java.lang.reflect.Type
@Entity(tableName = "tbl_finalOrder")
@TypeConverters(ItemEntityConverter::class)
data class FinalOrdersEntity (
@PrimaryKey(autoGenerate = true)
val id:Int,
val itemEntity: ItemEntity?,
// val itemEntity: String? = null,
var quantity: String?=null,
var unitName: String?=null,
var unitId: Int?=null,
var statusOfScheme: Boolean?=null,
@TypeConverters(SchemeDetailConverter::class)
var listOfScheme: List<SchemeDetailEntity>?=null,
val child_items: String?=null,
val selectedOffer:String? = null,
var offer:String?=null
)
class ItemEntityConverter {
@TypeConverter
fun stringToItemEntity(string: String?): ItemEntity = Gson().fromJson(string,ItemEntity::class.java)
@TypeConverter
fun itemEntityToString(list: ItemEntity?): String =Gson().toJson(list)
}
class SchemeDetailConverter {
@TypeConverter
fun stringToSchemeDetailEntity(json: String?): List<SchemeDetailEntity> {
val gson = Gson()
val type: Type = object : TypeToken<List<SchemeDetailEntity?>?>() {}.type
return gson.fromJson<List<SchemeDetailEntity>>(json, type)
}
@TypeConverter
fun schemeDetailEntityToString(list: List<SchemeDetailEntity?>?): String {
val gson = Gson()
val type: Type = object : TypeToken<List<SchemeDetailEntity?>?>() {}.type
return gson.toJson(list, type)
}
}
Когда я запускаю это, он просит создать класс typeconverter для listOfScheme. Однако для него уже есть класс.
ошибка FinalOrdersEntity.java:22: ошибка: не могу понять, как сохранить это поле в базе данных. Вы можете рассмотреть возможность добавления для него преобразователя типов. частный java.util.List ‹com.myproject.database.entities.SchemeDetailEntity› listOfScheme;
Вы можете сказать мне, где и что мне здесь не хватает. Заранее спасибо..