Код: Выделить всё
@Entity
data class Entity(
@PrimaryKey
val id: Long?=null,
val data1: DataClass1? = null,
val data2: DataClass2? = null
)
data class DataClass1(
val text: String = "",
val c: Char = ' '
)
data class DataClass2(
val num1: Float = 0.0f,
val num2: Long = 0,
)
Код: Выделить всё
@ProvidedTypeConverter
class Converters {
@TypeConverter
fun A_YYYYY(json: String): DataClass2 = Gson().fromJson(json, DataClass2::class.java)
@TypeConverter
fun Z_YYYYY(data: DataClass2): String = Gson().toJson(data)
@TypeConverter
fun A_XXXXX(json: String): DataClass1 = Gson().fromJson(json, DataClass1::class.java)
@TypeConverter
fun Z_XXXXX(data: DataClass1): String = Gson().toJson(data)
}
Как же Room узнает, как сопоставить методы в сгенерированном файле?
Код в автоматически сгенерированном файле Dao_Impl:
Код: Выделить всё
@Override
public Object getEntityById(final long id, final Continuation
Подробнее здесь: [url]https://stackoverflow.com/questions/78655899/how-does-room-know-how-match-a-typeconverter-function-to-the-appropriate-datatyp[/url]
Мобильная версия