Я разрабатываю новое приложение, но в моем коде появляется следующая ошибка:
Не могу понять, как сохранить это поле в базе данных. Вы можете
рассмотрите возможность добавления конвертера типов для него.
Я перепробовал все возможные решения от 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);
}
}