Я пытался создать класс данных для комнаты, и у класса также есть поле, предназначенное только для представлений. Я не хочу сохранять данные в комнате.
@Entity(tableName = "MyTable")
@Parcelize
data class MyTable(
@SerializedName("id") @PrimaryKey val id: String,
@SerializedName("field1") val field1: String?,
var selected: Boolean? = false //todo use @Ignore
) : Parcelable
Приведенный выше код работает. Однако всякий раз, когда я пытался использовать аннотацию @Ignore
с переменной с переменной selected
. Это дает мне следующую ошибку
error: Entities and Pojos must have a usable public constructor. You can have an empty constructor or a constructor whose parameters match the fields (by name and type).
Если я удалю переменную из конструктора, как
@Entity(tableName = "MyTable")
@Parcelize
data class MyTable(
@SerializedName("id") @PrimaryKey val id: String,
@SerializedName("field1") val field1: String?
) : Parcelable{
var selected: Boolean? = false //todo use @Ignore
}
Поле selected
не будет записано в посылку. Как мне сохранить переменную в классе, не создавая столбец и сохраняя его в посылке?
Спасибо