Quiero que mi Dao complete las columnas @Ignore en mi clase Entity. Por ejemplo:
Entidad
@Entity(tableName = "example") data class Example( @PrimaryKey val id: Long, val value: Int ) { @Ignore var nextId: Long = 0L }Dao
@Dao interface ExampleDao { @Query(value = "SELECT *, (id + 1) AS nextId FROM example") fun getAllExamples(): List<Example> } Sin embargo, cuando se compila la aplicación, se genera la siguiente advertencia: The query returns some columns [nextId] which are not used by com.example.app.Example y no se nextId .
¿Es posible incluir columnas @Ignorar en una consulta (si es así, cómo)? De lo contrario, ¿cuáles son algunas estrategias que se pueden emplear para completar columnas que no están presentes en mis tablas en mi clase de Entidad?
Nota: soy plenamente consciente con el ejemplo proporcionado de que simplemente puedo hacer algo como:
@Ignore val nextId: Long = id + 1Pero no es el punto de la pregunta que estoy haciendo.
Basado en la información que me ha dado @CommonsWare, la solución que elegí es
data class ExampleWithNextId( @Embedded val example: Example) { var nextId: Long = 0L }Entonces úsalo en Dao así.
@Dao interface ExampleDao { @Query(value = "SELECT *, (id + 1) AS nextId FROM example") fun getAllExamplesWithNextId(): List<ExampleWithNextId> }