[英]Room: Use class that extends ArrayList as Entity
我正在使用 Room Persistence Library 制作一個 Android 應用程序。 我有一個extends
ArrayList
類的類,如下所示:
@Entity(tableName = "the_table_name")
public class MyDemoClass<E extends AnotherDemoClass> extends ArrayList<E> {
@PrimaryKey
@NonNull
@ColumnInfo(name = "id")
private String id;
@ColumnInfo(name = "title")
private String title;
@ColumnInfo(name = "creationdate")
private Date creationDate;
// Other stuff
}
我正在嘗試添加這個類,它只允許擴展 AnotherDemoClass 的類在其中,作為 Room 的實體,但發生了編譯時錯誤,即:
error: cannot find symbol
_result = new MyDemoClass<E>();
^
symbol: class E
location: class MyDemoClassDao_Impl
我已經嘗試了一個多小時來解決這個問題,但沒有任何運氣。
編輯:這是我的Dao
:
@Dao
public interface MyDemoClassDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(MyDemoClass<AnotherDemoClass> myDemoClass);
}
如果您的回答可以以任何方式幫助,請與我分享!
我想使用 MyDemoClass 作為播放列表。 我會將歌曲添加到此播放列表並將其保存在數據庫中
MyDemoClass
將是一個普通的 Java 對象 (POJO),並且具有與播放列表的簡單屬性相對應的字段,例如用作用戶可以在播放列表名冊中提供和查看的名稱的String
。 MyDemoClass
不會是ArrayList
的子類。
Song
將是另一個 POJO,並且具有與歌曲的簡單屬性相對應的字段,例如作為其標題的String
。
由於播放列表可以包含多首歌曲,並且一首歌可以出現在多個播放列表中,因此您需要創建一個表示該連接的實體,並將外鍵關系返回到播放列表和歌曲實體。
Room 文檔中稍微介紹了外鍵關系的使用。 任何在 Room 上花費大量時間的書都應該涵蓋它。 例如,這是我關於 Room 中 M:N 關系章節的預覽版(來自本書)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.