查询列中的房间错误 return
Room error in query columns return
我见过这个问题 但我无法将其应用到我自己的错误中。
这是我的Movie
class
@Entity
public class Movie {
@PrimaryKey
@NonNull
public String id;
@ColumnInfo
public String name;
@ColumnInfo
public String title;
}
这是我的UpcomingMovies
class
@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();
以及我遇到的具体错误
error: The columns returned by the query does not have the fields [id] in *.Model.POJOs.Movie even though they are annotated as non-null or primitive. Columns returned by the query: [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);
}
}
试试这个查询:
@Query("Select * from UpcomingMovies")
LiveData<List<UpcomingMovies>> loadUpcomingMovies();
并且在你的 UpcomingMovies
class 中有一个 GETTER 方法:
public Movie getMovie() {
return this.movie;
}
您还可以使用此查询获取电影列表:
@Query("Select * from Movie")
LiveData<List<Movie>> loadUpcomingMovies();
祝你好运:)
我见过这个问题
这是我的Movie
class
@Entity
public class Movie {
@PrimaryKey
@NonNull
public String id;
@ColumnInfo
public String name;
@ColumnInfo
public String title;
}
这是我的UpcomingMovies
class
@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();
以及我遇到的具体错误
error: The columns returned by the query does not have the fields [id] in *.Model.POJOs.Movie even though they are annotated as non-null or primitive. Columns returned by the query: [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);
}
}
试试这个查询:
@Query("Select * from UpcomingMovies")
LiveData<List<UpcomingMovies>> loadUpcomingMovies();
并且在你的 UpcomingMovies
class 中有一个 GETTER 方法:
public Movie getMovie() {
return this.movie;
}
您还可以使用此查询获取电影列表:
@Query("Select * from Movie")
LiveData<List<Movie>> loadUpcomingMovies();
祝你好运:)