【发布时间】:2018-04-27 04:26:14
【问题描述】:
我有一个类实体如下
@Entity
public class Task {
private String name;
private Integer ParentId;
private Integer userId;
@Ignore
private int noOfSubTask;
}
在DAO类中有一个方法getTaskList()
@Dao
public interface TaskDao extends Dao<Task> {
@Query("SELECT *,(SELECT count(*) FROM Task b WHERE a._id = b.ParentId ) AS noOfSubTask FROM Task a ")
LiveData<List<Task>> getTaskList();
}
我要填写 noOfSubTask 的编号由查询的 (SELECT count(*) FROM Task b WHERE a._id = b.ParentId ) 部分给出, 但问题是它不是一个列,所以房间库不会在 dao 实现(自动生成)类中映射它的 getTaskList 方法。
有没有办法使用房间库的 dao 类的任何方法填充实体的非列字段(如我的情况下的 noOfSubTask)?
【问题讨论】:
-
你要填充哪个值?
-
查询中从 (SELECT count(*) FROM Task b WHERE a._id = b.ParentId ) 得到的值
-
@Kevan 提供的答案对您有用吗?它似乎对我不起作用......
标签: java android sqlite android-room android-architecture-components