Room. Составить Entity и Dao по JSON

Нужна помощь в составлении Entity для Room и Dao для insert.

{
    "response": [{
            "title": "iPhone X",
            "value": "120000",
            "other": [{
                "color": "red",
                "type": "phone"
            }]
        },
        {
            "title": "iPhone 6",
            "value": "120000",
            "other": [{
                    "color": "red",
                    "type": "phone"
                },
                {
                    "color": "green",
                    "type": "phone"
                }
            ]
        }
    ]
}
open class Converters {
    @TypeConverter
    fun get_string(str: List<Specialty>): String? {
        if (str == null) return null
        val others = StringBuilder()
        for (s in str) others.append(s).append(",")
        return others.toString()
    }
}

data class UsersBase(@SerializedName("response") var response: MutableList<Item> = mutableListOf())

@Parcelize
@Entity
data class Item(
    @PrimaryKey(autoGenerate = true) var id: Long = 0,

    @SerializedName("title") var title: String = "",
    @SerializedName("value") var value: String = ""

    @TypeConverters(Converters::class)
    @SerializedName("other") var other: Array<Other>
) : Parcelable {}

@Parcelize
@Entity(
    foreignKeys = [ForeignKey(
        entity = Item::class,
        parentColumns = arrayOf("id"),
        childColumns = arrayOf("itemId"),
        onDelete = ForeignKey.CASCADE
    )]
)
@TypeConverters(Converters::class)
data class Other(
    @PrimaryKey(autoGenerate = true) var id: Long = 0,

    @SerializedName("color") var color: String = "",
    @SerializedName("type") var type: String = "",
    var itemId: Long = 0
) : Parcelable


@Database(entities = [Item::class, Other::class], version = 1)
@TypeConverters(Converters::class)
abstract class AppDatabase : RoomDatabase() {
    ...
}

//Dao.kt
//Так записываю без List<Other>
    @Insert(onConflict = OnConflictStrategy.REPLACE)
    fun insertAll(item: List<Item>): LongArray?

Ответы (0 шт):