【发布时间】:2019-05-19 10:34:13
【问题描述】:
我正在开发一个新应用程序,但我的代码中出现以下错误:
无法弄清楚如何将此字段保存到数据库中。你可以 考虑为它添加一个类型转换器。
我已经尝试了 stackoverflow 中所有可能的解决方案,但没有奏效。
在我的 Article.java 模型类下面
@Entity(
tableName = "article",
foreignKeys = @ForeignKey(
entity = Source.class,
parentColumns = "id",
childColumns = "source"
))
public class Article {
@PrimaryKey
@SerializedName("source")
@NonNull
@Expose
@ColumnInfo(name ="source")
private Source source;
public Source getSource() {
return source;
}
public void setSource(Source source) {
this.source = source;
}
@SerializedName("author")
@Expose
@ColumnInfo(name = "author")
private String author;
@SerializedName("title")
@Expose
@ColumnInfo(name = "title")
private String title;
@SerializedName("description")
@Expose
@ColumnInfo(name = "description")
private String description;
@SerializedName("url")
@Expose
@ColumnInfo(name = "url")
private String url;
@SerializedName("urlToImage")
@Expose
@ColumnInfo(name = "urlToImage")
private String urlToImage;
@SerializedName("publishedAt")
@Expose
@ColumnInfo(name = "publishedAt")
private String publishedAt;
@SerializedName("content")
@Expose
@ColumnInfo(name = "content")
private String content;
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getUrlToImage() {
return urlToImage;
}
public void setUrlToImage(String urlToImage) {
this.urlToImage = urlToImage;
}
public String getPublishedAt() {
return publishedAt;
}
public void setPublishedAt(String publishedAt) {
this.publishedAt = publishedAt;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
}
在Source.java下面
道类以下
@Dao
public interface SportNewsDao {
@Query("SELECT * FROM article")
List<Article> getArticles();
@Insert
void insertAll(Article... article);
@Delete
void delete(Article article);
@Update
void update(Article article);
}
低于数据库类
@Database(entities = {Article.class,Source.class}, version = 1, exportSchema = false)
public abstract class SportNewsDatabase extends RoomDatabase {
public abstract SportNewsDao sportNewsDao();
}
below SourceTypeConverter.java
public class SourceTypeConverter {
@TypeConverter
public static Source ConvertSource(Source source){
return source == null ? null : new Source(source);
}
}
【问题讨论】:
标签: java android-room