Как @Ignore работает в классе данных с Room - PullRequest
1 голос
/ 08 июля 2019

Я пытался создать класс данных для комнаты, и у класса также есть поле, предназначенное только для представлений. Я не хочу сохранять данные в комнате.

@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 не будет записано в посылку. Как мне сохранить переменную в классе, не создавая столбец и сохраняя его в посылке?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...