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 ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta