Как использовать @Embedded in Room - PullRequest
0 голосов
/ 04 ноября 2018

У меня есть 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 {
             ^

Где я не знаю, где я сделал это неправильно.

...