Комната: используйте класс, который расширяет ArrayList как сущность
Я создаю приложение для 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 , чтобы быть в нем, как сущность в комнату, но происходит ошибка компиляции, которая является:
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);
}
Если ваш ответ может помочь в любом случае, пожалуйста, поделитесь им со мной!
1 ответ:
Я хотел бы использовать MyDemoClass в качестве плейлиста. Я бы добавил песни в этот плейлист и сохранил его в базе данных
MyDemoClass
это был бы простой объект Java (POJO) и имел бы поля, соответствующие простым свойствам плейлиста, таким какString
, который служил бы именем, которое пользователи могут предоставлять и видеть в списках плейлистов.MyDemoClass
будет не подклассомArrayList
.Поскольку в плейлисте может быть несколько песен, а песня может появляться в нескольких плейлистах, вам нужно будет создать сущность, представляющую это соединение, с внешними ключами, связанными с сущностями плейлиста и песни.
Song
был бы другой POJO и иметь поля, соответствующие простым свойства песни, такие какString
для ее названия.Использование отношений внешнего ключа слегка освещено вдокументации комнаты . Она должна быть освещена в любой книге, которая тратит значительное время на комнату. Например, вот предварительный просмотр издание моей главы о m: N отношениях в комнате (из этой книги).