Я играл с Room, где я не мог найти какое-то решение для моих запросов.
Ниже приведены данные.
Таблица
CREATE TABLE `Employee` (
`id` INTEGER NOT NULL,
`first_name` TEXT,
`last_name` TEXT,
PRIMARY KEY(`id`)
);
Табличные данные
Сущность
@Entity(tableName = "Employee")
public class Employee {
@PrimaryKey
private int id;
@ColumnInfo(name = "first_name")
private String firstName;
@ColumnInfo(name = "last_name")
private String lastName;
..Getters & Setters..
}
Запрос 1
@Query("Select * from Employee")
List<Employee> getEmployees();
Результат Успешный
Запрос 2
@Query("Select first_name, last_name from Employee")
List<Employee> getEmployees();
Result
ошибка: столбцы, возвращаемые запросом, не имеют полей [id] в ***. Employee, даже если они помечены как ненулевые или примитивные.Столбцы, возвращаемые запросом: [first_name, last_name]
Если я добавлю id
к Query 2
, это будет работать.
То же самое, если у нас есть Foreign Key
в таблице, и мы пытаемся запросить подмножество столбцов, он выдает ошибку.Ошибка возникает, когда мы добавляем в запрос оба столбца Primary Key
& Foreign Key
.
Вопрос 1 Означает ли это, что мы всегда должны включать Primary Key
& Foreign Key
(еслиприсутствует) в запросе?
Вопрос 2 Что на самом деле происходит под капотом, когда выдает такую ошибку?Или я что-то не так делаю?
Версия для комнаты 1.1.1
Также ссылался на эту ссылку , но это не решает мою проблему сПервичные ключи.