这是一个示例POJO
public class Product{
private long id;
private String name;
private double price;
... constructor for all fields
... getters and setters
}
Run Code Online (Sandbox Code Playgroud)
现在,在我的productDAO中,如果我有这样的查询
@Query(select id, name from products)
LiveData<List<Product>> getProducts()
Run Code Online (Sandbox Code Playgroud)
我收到如下错误:
查询返回的列在... Product中没有字段[price],即使它们被注释为非null或原始类型。查询返回的列:[id,name]
a)如果我进入我的产品并设置
@Nullable
private double price;
Run Code Online (Sandbox Code Playgroud)
错误仍然存在。
b)如果我进入我的产品并设置
@Ignore
private double price;
Run Code Online (Sandbox Code Playgroud)
错误消失了,但是如果我有另一个查询
@Query(select p.id, p.name, p.price, t.someField from products p inner join table t)
LiveData<List<Product>> getJoinQueryResponse()
Run Code Online (Sandbox Code Playgroud)
因为@Ignore已设置,价格返回为0.0。
那么如何解决呢?希望我不需要为房间的每个不同响应都做一个POJO ...
android android-sqlite android-room android-architecture-components