Я разработал базу данных комнаты для своего приложения для Android. Все мои методы интерфейса DAO работают, за исключением случаев, когда в запросе есть функции min / max.
Вот макет класса сущности:
@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_key
, но все timestamp
равны null
. Кто-нибудь знает проблему?