Meu aplicativo está usando atualmente retrofit e Room, mas estou com dificuldades para encontrar uma maneira de gerar automaticamente o id do objeto Db. Ao mapear o objeto retrofit para a entidade RoomDb, ele continua pedindo um id para arquivar, mesmo se eu tiver adicionado a chave de geração automática
Abaixo está o objeto de retrofit:
data class RetrofitProduct(
@SerializedName("id")
val id: String,
@SerializedName("types")
val types: List<String>,
@SerializedName("date")
val date: String,
)
e a Entidade de Sala associada:
@Entity
data class ProductEntity(
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
val id: Int,
@ColumnInfo(name = "productId")
val productId: String,
@ColumnInfo(name = "types")
val types: List<String>,
)
o Mapper é como abaixo:
fun RetrofitProduct.toEntity(): ProductEntity {
return ProductEntity(
productId = this.id,
types = this.types,
)
}
Mas no momento da compilação, o compilador reclama que preciso adicionar id
:
Nenhum valor passado para o parâmetro 'id'
Quero que esse ID seja gerado pelo Room como uma forma de obter o número de itens para minha paginação.
Basicamente, se eu puxar o lastItem, sei que o id é, por exemplo: 25. Então, preciso pedir 26 ou mais.