2016-06-12 81 views
2

我的数据结构如下:我有一个庞大的地址数据库,我希望在提供我的Android应用程序时进行预填充,然后我有一些用户数据使用/链接这些地址。Android + Realm:从多个领域获取数据

我很想将地址保存在一个领域,并将用户数据保存在另一个领域。原因在于,无论何时提交新的应用程序版本以向用户提供最新数据,我都可以轻松地替换地址领域。

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

+0

您需要手动映射领域和他们各自的查询。 – EpicPandaForce

回答

0

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

这就是说,有多种方法可以实现您正在寻找的东西。从某种意义上说,我会将地址编码并根据大量的地理应用与用户进行匹配。

+0

“手动匹配条目”是什么意思? “编码地址”是什么意思?目前没有真正帮助... – swalkner

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这样做,因为你是引发了很多的查询方式。另外,更改监听器和查询也不会跨越领域进行工作。