簡體   English   中英

房間:使用將 ArrayList 擴展為實體的類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM