Android 房间数据库内部联接结果
我有两张一对一的表 例如: 表:Android 房间数据库内部联接结果,android,inner-join,android-room,Android,Inner Join,Android Room,我有两张一对一的表 例如: 表: 用户[u_id、u_名称、u_地址] 地址[添加id、添加国家、添加城镇、添加街道] 这意味着在我的java代码中有两个实体和两个DAO 当我要执行此查询时:select*from users internal join address on u\u address=add\u id 它会回来的 LiveData<List<ItemUser>> LiveData 就像这样,我会得到u_地址,它只是一个ID,而不是ItemAddre
- 用户[u_id、u_名称、u_地址]
- 地址[添加id、添加国家、添加城镇、添加街道]
select*from users internal join address on u\u address=add\u id
它会回来的
LiveData<List<ItemUser>>
LiveData
就像这样,我会得到u_地址,它只是一个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;
}
@实体
公共类用户{
@PrimaryKey公共最终整数id;
公共最终字符串u_名称;
公开最后国际演讲;
}
@实体
公共课堂演讲{
@PrimaryKey公共最终int add_id;
公共最终字符串add_country;
公共最终字符串add_town;
公共街道;;
}
公共类用户和地址{
@嵌入式公共用户;
@关系(parentColumn=“u\u id”,
entityColumn=“add_id”)公共列表地址列表;
}
Dao
@Dao
public interface UserAndAddressDao {
@Query("SELECT * from users")
public List<UserAndAddress> getUsersAndAddress();
}
@Dao
公共接口UserAndAddressDao{
@查询(“从用户中选择*)
公共列表getUsersAndAddress();
}
但我只有一个地址,而不是地址列表,因此关系注释对我不起作用!你能检查一下这个问题吗?