Java Room:使用将ArrayList扩展为实体的类
我正在使用Room持久性库制作一个Android应用程序。我有一个类,Java Room:使用将ArrayList扩展为实体的类,java,android,inheritance,arraylist,android-room,Java,Android,Inheritance,Arraylist,Android Room,我正在使用Room持久性库制作一个Android应用程序。我有一个类,扩展了ArrayList类,如下所示: @Entity(tableName = "the_table_name") public class MyDemoClass<E extends AnotherDemoClass> extends ArrayList<E> { @PrimaryKey @NonNull @ColumnInfo(name = "id") private String
扩展了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
}
如果你的答案有任何帮助,请与我分享
我想使用MyDemoClass作为播放列表。我会将歌曲添加到此播放列表,并将其保存在数据库中
MyDemoClass
将是一个普通的ol'Java对象(POJO),并且将具有与播放列表的简单属性相对应的字段,例如字符串
,该字符串将用作用户可以在播放列表列表中提供和查看的名称MyDemoClass
将不是ArrayList
的子类
歌曲
将是另一个POJO,其字段对应于歌曲的简单属性,例如其标题为字符串
由于一个播放列表可以有多首歌曲,并且一首歌曲可以出现在多个播放列表中,因此您需要创建一个表示该加入的实体,并将外键关系返回到播放列表和歌曲实体
外键关系的使用在本文中略作介绍。任何花大量时间在房间里的书都应该包括它。例如,这里是(from)。请阅读“如何创建”一文。然后使用链接改进您的问题(不要通过评论添加更多信息)。否则,我们无法回答您的问题并帮助您。请不要给出你的代码片段,展示所有相关部分。比如给出错误的行和上下文。除此之外,你可能根本不理解这些泛型的含义。所以:你应该多研究一下这个话题;-)你真的是想把@Entity
放在MyDemoClass
上吗?如果是这样,您希望SQLite表与这个类对应的样子是什么?Hi@GhostCat,如果您使用我刚才给出的代码,您将能够重现这个问题:D@CommonsWare是的,房间似乎不接受这样的课程。你知道我如何解决这个问题吗?谢谢你的回答,如果有帮助的话,我会调查并接受你的回答!非常感谢@commonware,我在谷歌上搜索了“房间里的M:N关系”,找到了一个非常好的教程。把它推荐给在房间里挣扎的每个人
error: cannot find symbol
_result = new MyDemoClass<E>();
^
symbol: class E
location: class MyDemoClassDao_Impl
@Dao
public interface MyDemoClassDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(MyDemoClass<AnotherDemoClass> myDemoClass);
}