Я хочу обновить свой объект в комнате по идентификатору, но это не работает.
Вот мой класс DAO
@Query("UPDATE greeting SET id =:id")
abstract fun updateGreetingByID(id: String)
Вот мой DBHelper
fun updateGreetingByID(id: String) {
Thread { dataBase.greetingDao().updateGreetingByID(id) }.start()
}
Моя модель
@Entity(tableName = "greeting")
class GreetingModel(
id: String? = "",
greetingCategory: String = "",
isFavourite: Boolean = false,
position: Int = 0
) : Parcelable {
@PrimaryKey(autoGenerate = true)
var _id: Int = 0
@ColumnInfo(name = "id")
var id: String? = null
@ColumnInfo(name = "greetingCategory")
var greetingCategory: String? = null
@ColumnInfo(name = "isFavourite")
var isFavourite: Boolean? = null
@ColumnInfo(name = "imageId")
var imageId: ByteArray? = null
@ColumnInfo(name = "position")
var position: Int = 0
@ColumnInfo(name = "saved")
var saved: Int = 0
constructor(parcel: Parcel) : this(
) {
_id = parcel.readInt()
id = parcel.readString()
greetingCategory = parcel.readString()
isFavourite = parcel.readValue(Boolean::class.java.classLoader) as? Boolean
imageId = parcel.createByteArray()
position = parcel.readInt()
saved = parcel.readInt()
}
init {
this.id = id
this.greetingCategory = greetingCategory
if (position != null) {
this.position = position
}
this.isFavourite = isFavourite
}
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeInt(_id)
parcel.writeString(id)
parcel.writeString(greetingCategory)
parcel.writeValue(isFavourite)
parcel.writeByteArray(imageId)
parcel.writeInt(position)
parcel.writeInt(saved)
}
override fun describeContents(): Int {
return 0
}
companion object CREATOR : Parcelable.Creator<GreetingModel> {
override fun createFromParcel(parcel: Parcel): GreetingModel {
return GreetingModel(parcel)
}
override fun newArray(size: Int): Array<GreetingModel?> {
return arrayOfNulls(size)
}
}
}
Где id
это val id = UUID.randomUUID().toString()
Я хочу обновить объект, когда пользователь нажимает на избранную кнопку
val greetingModel = GreetingModel()
greetingModel.isFavourite = true
greetingModel.greetingCategory = " "
greetingModel.position = postImage
greetingModel.id?.let { helper.updateGreetingByID(greetingModel.id!!) }
Мой метод update
не работает. Надеюсь, вы поможете!