android - 如何在房间持久性库中使用嵌套模型?
问题描述
如何将用户表“addressId”列与地址表“id”列相关联?当我插入用户模型数据时,我如何在两个表“用户和地址”中插入数据。和获取数据的情况一样吗?
地址模型是用户模型的嵌套类。
@Entity(tableName = "user")
public class User {
@PrimaryKey(autoGenerate = true)
private Integer localId;
private Integer id;
private String name;
private Integer addressId;
private Address address;
}
@Entity(tableName = "address")
public class Address {
@PrimaryKey(autoGenerate = true)
private Integer localId;
private Integer id;
private String address1;
private String address2;
private String address3;
}
解决方案
见https://developer.android.com/training/data-storage/room/referencing-data
基本上你的选择是:
- 重组以使用不同的表
- 利用
@Embedded
- 使用类型转换器将它们保存为一些原始类型(可能会限制您查询这些数据的能力)
推荐阅读
- c# - 如果最初为空,如何为每个子元素设置列表子元素?
- elasticsearch - 是否可以使用拆分桶的值在 Kibana 直方图中订购拆分系列?
- handlebars.js - jsreport 2.0 BeforeRender 不工作
- python - CPLEX Python API:为什么在(大部分)默认参数设置下 CPLEX 12.8 比 CPLEX 12.5 需要更多时间来求解?
- android - Android强制Drawable以相同的高度和宽度绘制
- botframework - Bot ConversationData 属性即使只设置了一次也会被覆盖吗?
- amazon-web-services - AWS Rekognition 对响应文本块数量的限制?
- android - 添加哪个代码来使图像移动?
- c# - 参数超出范围异常,参数名称:名称
- excel - 使用 Apache POI 更新和加密现有 xlsx 文件