Ошибка помещения в столбцах запроса - PullRequest
0 голосов
/ 27 августа 2018

Я видел эту проблему номер-ошибки-столбцы-возвращенные-по-запросу-не-поля-поля-имени но я не могу применить его к своему собственному ошибка.

Это мой Movie класс

    @Entity
    public class Movie {

        @PrimaryKey
        @NonNull
        public String id;

        @ColumnInfo
        public String name;

        @ColumnInfo
        public String title;
    }

Это мой UpcomingMovies класс

@Entity(
        foreignKeys = {
        @ForeignKey(
                entity = Movie.class,
                parentColumns = "id",
                childColumns = "movieId")
        },
        indices = @Index("movieId")
)
@TypeConverters(MovieConverter.class)
public class UpcomingMovies {

    @PrimaryKey(autoGenerate = true)
    public int id;

    @ColumnInfo
    public int movieId;

    @ColumnInfo
    public Movie movie;
}

Запрос, который я пытаюсь выполнить, и который я хочу получить Список фильмов

@Query("Select movie from UpcomingMovies")
LiveData<List<Movie>> loadUpcomingMovies();

И конкретную ошибку я получаю

ошибка: столбцы, возвращаемые запросом, не имеют полей [id] в * .Model.POJOs.Movie, даже если они аннотированы как ненулевые или примитивные. Столбцы, возвращаемые запросом: [фильм]

Что я здесь пропустил?

Редактировать: Добавлено MovieConverter

public class MovieConverter {

    @TypeConverter
    public String movieToString(Movie movie) {
        return new Gson().toJson(movie);
    }

    @TypeConverter
    public Movie stringToMovie(String src) {
        return new Gson().fromJson(src, Movie.class);
    }
}

1 Ответ

0 голосов
/ 27 августа 2018

Попробуйте этот запрос:

@Query("Select * from UpcomingMovies")
LiveData<List<UpcomingMovies>> loadUpcomingMovies();

И есть метод GETTER в вашем UpcomingMovies классе:

public Movie getMovie() {
    return this.movie;
}
<Ч />

Вы также можете получить список фильмов по этому запросу:

@Query("Select * from Movie")
LiveData<List<Movie>> loadUpcomingMovies();
<Ч />

Удачи:)

...