我一直在为此苦苦挣扎,但没有找到解决方案。
假设我有这个示例实体:
@Entity (tableName="test")
public class Test{
@PrimaryKey(autoGenerate = true)
@ColumnInfo(name = "id")
private long id;
@ColumnInfo(name = "field1")
@NonNull
private double field1;
@Ignore
@ColumnInfo(name = "queryField")
private transient String queryField;
}
因此,基本上我的表具有id
和field1
,而queryField
不是列表,但它在屏幕上用于显示其他表的更多详细信息。
然后在我的DAO中
...
@Query("Select a.id, a.field1, b.column as queryField
"from test a inner join some_table on..." +
"where a.id=:someId" +
"order by i.name ASC")
LiveData<List<Test>> get(long someId);
....
这样运行某事,并且查询结果包含test.id和test.field1信息时,它不会填充queryField属性,该属性保持为空。
@Entity
不允许这种查询吗?我是否需要生成另一个类来添加新列?我想在项目中混合实体和Pojos,以使事情变得简单。