Android + Realm:从多个领域获取数据

时间:2016-06-12 08:01:23

标签: android realm

我的数据结构如下:我确实有一个巨大的地址数据库,我想在交付我的Android应用程序时预先填写,然后我有一些使用/链接到这些地址的用户数据。

我希望将地址保存在一个领域,将用户数据保存在另一个领域。这样做的原因是,每当我提交新的应用程序版本以便向用户提供最新数据时,我都可以轻松替换地址领域。

我现在面临的问题是如何在两个域上实现连接,即获取用户数据及其相应的地址。我需要阅读,例如Person记录(来自用户领域),附带Address记录(来自预填充领域)。这有可能吗?

2 个答案:

答案 0 :(得分:0)

目前不支持从单独的数据库加入多个RealmResuls,除非您手动将条目与条目匹配。

话虽如此,有多种方法可以实现您的目标。在某种程度上,我会编写地址并将用户与其匹配,就像许多地理应用程序一样。

答案 1 :(得分:0)

不,目前Realm不支持组合多个领域的结果。你必须以某种方式手动完成。

根据您的使用情况,可以通过多种方式完成。一种方法是Person对象上的辅助方法:

public class Person extends RealmObject {
  private String name
  private String addressId; // Id in Address Realm

  public Address getAddress(Realm addressRealm) {
    return addressRealm.where(Address.class).equalTo("id", addressId).findFirst();
  }
}

我会谨慎地在List中执行此操作,因为您以这种方式触发了大量查询。此外,更改侦听器和查询也无法在Realms中工作。