如何在房间里使用@Embedded

时间:2018-11-04 13:04:03

标签: android android-room pojo

我有一个POJO,其中包含内部POJO。我想将此POJO保存到数据库中,并且在应用程序中使用Room。 请参考this,我可以使用@Embedded将内部POJO插入主POJO中,而无需为此创建新表。

这是我的方法:

@Entity
data class Article constructor(
    @PrimaryKey(autoGenerate = true)
    var id: Long,

    @SerializedName("author") var author: String?,
    @SerializedName("title") var title: String?,
    @SerializedName("description") var description: String?,
    @SerializedName("url") var url: String?,
    @SerializedName("urlToImage") var urlToImage: String?,
    @SerializedName("publishedAt") var publishedAt: String?,
    @SerializedName("content") var content: String?,

   @Embedded @SerializedName("source") var source :Source
) {
    var atricleAuthor = "Author: $author"
}

class Source constructor(
    @SerializedName("id") var sourceId: String?,
    @SerializedName("name") var sourceNname: String?
)

但是我遇到了这个错误:

error: Entity class must be annotated with @Entity
public final class Source {
             ^

我不知道哪里做错了。

0 个答案:

没有答案