android - 房间数据库 INNER JOIN 结果
问题描述
我有两张表具有一对一的关系
例如 :
表:
- 用户 [ u_id,u_name,u_address ]
- 地址 [ add_id,add_country,add_town,add_street ]
这意味着我的 java 代码中有两个实体和两个 DAO
当我想执行这个查询时:select * from users inner join address on u_address = add_id
它会回来
LiveData<List<ItemUser>>
像这样我会得到 u_address ,它只是一个 ID 而不是 ItemAddress 对象,我可以在其中获取我想要的数据。
我知道我可以执行另一种方法来获取所选地址的数据,但我想知道是否可以通过仅调用一个方法来获取整个数据?
解决方案
据我了解,您想要这两个实体之间关系的结果。
您可以使用关系注释
堆栈溢出中的相同答案。
在你的例子中会是这样的。
班级
@Entity
public class Users {
@PrimaryKey public final int u_id;
public final String u_name;
public final int u_address;
}
@Entity
public class Address {
@PrimaryKey public final int add_id;
public final String add_country;
public final String add_town;
public final String add_street;
}
public class UserAndAddress{
@Embedded public Users user;
@Relation(parentColumn = "u_id",
entityColumn = "add_id") public List<Address> addressList;
}
道
@Dao
public interface UserAndAddressDao {
@Query("SELECT * from users")
public List<UserAndAddress> getUsersAndAddress();
}
推荐阅读
- matlab - 如何使用 Matlab 分析和绘制二氧化碳排放数据
- gulp - 为什么 Gulp 以错误的顺序连接我的输出?
- c# - 如何将 Azure MSI AccessToken 添加到 EF6 DbContext 以连接 Azure SQL PaaS
- python-3.x - AWS Glue Python Shell 作业因 MemoryError 而失败
- vhdl - 在 VHDL 93 中对端口实体中的类型使用泛型
- c - 如何在C中添加产品数字而不是产品本身?
- insomnia - 导入 swagger json 时因超出最大调用堆栈大小而失眠失败
- javascript - 通过 React JS 中的 URL 将所有图像下载到客户端
- ios - 是否可以在没有用户交互的情况下在 Swift 中使用 OTP 填充文本字段?
- ios - 如何在 SwiftUI 中将本地 JSON 文件解析为 ListView?这里是应用程序开发的新手