【发布时间】:2017-07-02 12:28:12
【问题描述】:
我遇到了将模型类添加到 Room 数据库的问题。我读过@Relation、@Embedded,但我不知道如何处理我的模型类。
这里是我的模型类,它来自服务器。我需要存储这些数据
public class ResultsItem {
private String model;
private int id;
private int distanceLon;
private String brand;
//*PROMBLEM HERE*
private List<BidsItem> bids;
//*PROMBLEM HERE*
private User user;
//*PROMBLEM HERE*
private List<FotosItem> fotos;
// getters/setters...
}
FotosItem 类
public class FotosItem {
private String imageUrl;
private int resultItemId;
private int id;
//getters/setters
}
BidsItem 类
public class BidsItem {
private double distanceToAuto;
private boolean isWin;
private int sum;
private String currency;
private int id;
//getters/setters
}
如果有人告诉我我需要做什么,或者至少要朝哪个方向前进,我将不胜感激
【问题讨论】:
-
如果你想在databsae中保存一个类,你必须将它转换成一个字节数组(apache commons lang有一个工具,但是你可以自己创建它,如果你喜欢它)然后您使用 blob 字段将其放入数据库中。使用 getBlob 加载它并使用 apache lang 将字节流转换回类
-
@LunarWatcher thx 快速评论,但我还需要使用
LiveData<>获取添加到 Room 数据库的新数据。该数据在分页下一部分数据时来自服务器 -
嗯,好吧,我们真的帮不了你太多,因为我们不知道
BidsItem、User或FotosItem是什么。我们不知道ResultsItem与这些其他事物之间关系的性质(例如,User是否有一个ResultsItem或 N 个可能的ResultItem实例)?最有可能的是,所有这些都是实体,您需要根据您拥有的关系类型确定外键的去向。忽略@Relation。如果ResultsItem和User之间存在纯1:1 关系,则User最多可能是@Embedded。 -
我在上面添加了
BidsItem和FotosItem代码
标签: android database orm android-architecture-components