【发布时间】:2018-07-31 14:11:19
【问题描述】:
我为我的 android 应用程序设计了一个房间数据库。我所有的 DAO 接口方法都可以工作,除非我在查询中有最小/最大函数。
这是实体类的模拟:
@Entity
public class Data {
@PrimaryKey
@NonNull
private String timestamp;
@ColumnInfo(name = "item_key")
private int itemKey;
...Other stuff...
}
这是一个只包含所需部分的类:
public class HeaderData {
private int item_key;
private String timestamp;
public HeaderData(int item_key, String timestamp) {
this.item_key = item_key;
this.timestamp = timestamp;
}
}
这里是DAO接口:
@Dao
public interface LocationDao {
@Insert
void insertSingleRecord(Data data);
@Query("SELECT * FROM Data")
List<LocationData> getEverything();
@Query("SELECT * FROM Data WHERE item_key = :itemKey")
List<Data> getDbData(int itemKey);
// I dont know why this query is not working!
@Query("SELECT item_key, MIN(timestamp) FROM LocationData GROUP BY item_key")
List<HeaderData> getHeaderData();
}
在最后一个查询 getHeaderData() 中,MIN 函数似乎不起作用,我得到了一个带有正确 item_keys 的标题数据列表,但所有 timestamps 都是 null 。有人知道这个问题吗?
【问题讨论】:
标签: android sql dao android-room android-jetpack