Объявите переменную Room, которая @Nullable в памяти, но @NonNull в базе данных SQLite? - PullRequest
3 голосов
/ 09 июля 2019

Вот канонический пример:

@Entity
class Kozmique {

    @PrimaryKey(autoGenerate = true)
    @NonNull  // TODO  how to be non-null in the database but nullable in memory?
    public Long id;

В памяти никто не должен присваивать kozmique.id, кроме одного оракула - возвращаемого значения KozmiqueDao.insert.Таким образом, чтобы создать Kozmique и ввести его в базу данных, необходимо временно запустить его с нулевым значением id.

Но в базе данных идентификатор должен быть NOT NULL, поскольку в момент, когда NULL проскальзывает вМне нужно сообщение об ошибке.

Итак, как мне сообщить Room именно то, что мне нужно, вместо того, чтобы позволить Room использовать гибрид SQL и Java, который неточен в обоих?

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