class Address {
public String street;
public String state;
public String city;
@ColumnInfo(name = "post_code")
public int postCode;
@Embedded(prefix = "home_")
public Location homeLocation;
@Embedded(prefix = "office_")
public Location officeLocation;
}
class Location{
public long lat;
public long lng;
}
@Entity
class User {
@PrimaryKey
public int id;
public String firstName;
@Embedded(prefix = "addr_")
public Address address;
}
如何编写查询以获取家庭位置在某些纬度和经度边界之间的用户?
例如:如果我想查找所有家庭位置位于这两个点Location1(13.135795,77.360348)和Location2(12.743639,77.901424)之间的用户。我的查询应该类似这样 -
select * from User where address.homelocation.lat < :l1_latitude && address.homelocation.lat > l2_latitude && address.homelocation.lng > :l1_longitude && address.homelocation.lng < :l2_longitude
如果我必须在嵌入式位置中使用前缀,从我的理解来看,如果我在地址内部查询城市,则所有字段都将附加前缀。所以我可以将城市查询为addr_city,如果我必须查询homeLocation内的lat,那么它会变成addr_home_lat吗?
Room数据库允许嵌套嵌入式对象吗?如果是,则如何查询嵌套嵌入式对象?
需要一些帮助。谢谢。