一个带有ID,另一个没有。另外,为什么不能删除构造函数?为什么必须改为指定@Ignore?先感谢您。
我指的是实体。这是我指的代码和网址。
@Entity(primaryKeys={"id", "versionCode"})
class VersionedThingy {
@NonNull public final String id;
public final int versionCode;
@Ignore
private String something;
VersionedThingy(String id, int versionCode) {
this.id=id;
this.versionCode=versionCode;
}
}
https://commonsware.com/AndroidArch/previews/the-dao-of-entities
答案 0 :(得分:0)
您可以在这里查看文档:{{3}},其中说:
每个实体必须具有无参数构造函数,或者其参数匹配字段(基于类型和名称)的构造函数。构造函数不必将所有字段都作为参数来接收,但是如果没有将字段传递给构造函数,则它应该是公共的或具有公共的setter。如果有匹配的构造函数可用,Room将始终使用它。如果您不希望它使用构造函数,则可以使用“忽略”对其进行注释。
将一个类标记为实体时,其所有字段都将保留。 如果您想排除其某些字段,可以对其进行标记 忽略。
如果一个字段是瞬态的,除非它是 带有ColumnInfo,Embedded或Relation的注释。
因此,您只能使用一个构造函数,具体取决于Database
希望我有所帮助:)