Ошибка, которую я получаю:
error: theme_id, ссылка на picture_id в первичном ключе не существует в сущности.Доступные имена столбцов: theme_id, picture_id, image
Я много смотрел в Интернете, но ничего не могу найти по этому поводу.Эта ошибка появляется только при попытке использовать составной ключ.Если я аннотирую одно из полей обычным ключом PrimaryKey, оно будет работать нормально.Я не понимаю, что здесь происходит, и это расстраивает, что я не могу найти в Интернете ничего об этом.Я надеюсь, что вы, ребята, сможете мне помочь.
Сущность
@Entity(primaryKeys = {"theme_id, picture_id"}, tableName = "picture")
public class Picture {
@ColumnInfo(name = "theme_id")
private int themeId;
@ColumnInfo(name = "picture_id")
private int pictureId;
@ColumnInfo(name = "image", typeAffinity = ColumnInfo.BLOB)
private byte[] image;
}
Дао
@Dao
public interface PictureDao {
@Insert
void instertPictures(Picture... pictures);
@Update
void updatePictures(Picture... pictures);
@Delete
void deletePictures(Picture... pictures);
@Query("SELECT * FROM picture")
List<Picture> getAllPictures();
@Query("SELECT * FROM picture WHERE theme_id = :themeId")
List<Picture> getThemePictures(int themeId);
@Query("SELECT * FROM picture WHERE theme_id = :themeId AND picture_id = :pictureId")
Picture getPicture(int themeId, int pictureId);
}
База данных
@Database(entities = {Picture.class}, version = 1, exportSchema = false)
public abstract class PictureDatabase extends RoomDatabase {
public static final String NAME = "picture_db";
public abstract PictureDao pictureDao();
}