我有两个表,一对一的关系
例如:
表格:
在我的Java代码中,这意味着两个实体和两个DAO
当我想执行此查询时:select * from users inner join address on u_address = add_id
它将返回
LiveData<List<ItemUser>>
这样,我将得到u_address,它只是一个ID而不是ItemAddress对象,在这里我可以获取所需的数据。
我知道我可以执行另一种方法来获取所选地址的数据,但是我想知道是否有可能仅通过调用一个方法来获取全部数据?
答案 0 :(得分:1)
据我了解,您需要这两个实体之间关系的结果。
您可以使用Relation Annotation
同一answer在堆栈溢出中。
在您的示例中将是这样。
课程
@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
@Dao
public interface UserAndAddressDao {
@Query("SELECT * from users")
public List<UserAndAddress> getUsersAndAddress();
}