room error: las columnas devueltas por la consulta no tienen los campos fieldname
Aquí hay una muestra de POJO
public class Product{
private long id;
private String name;
private double price;
... constructor for all fields
... getters and setters
}
Ahora, en mi producto DAO si tengo una consulta como esta
@Query(select id, name from products)
LiveData<List<Product>> getProducts()
Recibo un error como:
Las columnas devueltas por la consulta no tienen los campos [precio] en ... Producto aunque estén anotados como no nulos o primitivos. Columnas devueltas por la consulta: [id, nombre]
a) Si entro en mis Productos y configuro
@Nullable
private double price;
el error permanece.
b) Si entro en mis Productos y configuro
@Ignore
private double price;
el error desaparece, pero si tengo otra consulta, por ejemplo,
@Query(select p.id, p.name, p.price, t.someField from products p inner join table t)
LiveData<List<Product>> getJoinQueryResponse()
porque@Ignore
se establece, el precio se devuelve como 0.0.
Entonces, ¿cómo resolver esto? Espero no tener que hacer un POJO por cada respuesta diferente de la habitación ...