Вот канонический пример:
@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, который неточен в обоих?