我想在我的应用程序中缓存一个歌曲列表,歌曲列表结构如下所示:
@Entity
public class Songlist {
String _id;
String desc;
List<SongDesc> songWithComment;
.....
public static class SongDesc {
String comment;
Song song;
}
}
@Entity
pulbic class Song {
String name;
String type;
......
}
操作sqlite3的lib是android.arch.persistence.room,但它不允许表中的对象引用。有没有办法在Android中使用Room来缓存歌曲列表?
答案 0 :(得分:2)
此外,如果您想存储一些自定义对象,您可以使用@Embedded注释,如下例所示:
class Address {
public String street;
public String state;
public String city;
@ColumnInfo(name = "post_code")
public int postCode;
}
@Entity
class User {
@PrimaryKey
public int id;
public String firstName;
@Embedded
public Address address;
}
答案 1 :(得分:1)
如果要将某种类型的ArrayList保存到数据库中,可以使用TypeConverter
将ArrayList从一个更简单的可识别类型转换为数据库引擎,如String
。< / p>
看到这个: Android Room Database: How to handle Arraylist in an Entity? 和https://commonsware.com/AndroidArch/previews/room-and-custom-types