这是典型的例子:
@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
,除了一个oracle-KozmiqueDao.insert
的返回值。因此,要创建一个Kozmique
并将其输入数据库,必须使用空id
临时运行它。
但是在数据库中,该ID应该为NOT NULL
,因为NULL进入的那一刻我们需要一条错误消息。
那么我该如何确切地告诉Room我需要什么,而不是让Room利用SQL和Java的混合方式(两者都不精确)?