gpt4 book ai didi

java - Java/Android Realm - 保留查询/结果的状态

转载 作者:搜寻专家 更新时间:2023-11-01 09:24:22 25 4
gpt4 key购买 nike

在目前正在开发的项目中,我们正在整合 Realm Database进入客户的应用程序以提高响应速度,同时处理约 20.000 条记录的庞大数据集。对于屏幕演示,我们合并了 Realm's Android Recyclerview .大多数用例是读取操作,然后是高级搜索和/或记录过滤的可能性。

在我们的一些 View 中,难点在于,从给定类型的所有数据中,应该只显示由后端选择的记录子集。使用 API 传递的信息,我们执行初始过滤并设置 View 。

现在,使用上述技术,是否有一种可读和可维护的方式来存储这个预过滤的子集或获取它以供进一步引用的查询,以便一旦搜索 View 和/或过滤器被清除?或者应该存储 API 响应并重新应用通过它给出的条件是唯一的方法吗?对查询应用任何新条件似乎会永久改变它,对结果应用新查询也是如此。难道不应该有一种方法可以在不干扰旧结果集的基础上为我们自己创建新的结果集吗?

编辑:我们的应用程序是“双语”的,如果基于 Java 和 Kotlin 的解决方案有所不同,我们都欢迎它们。

最佳答案

正如我们在本周早些时候意识到的那样,正如@EpicPandaForce 在评论中提到的那样,RealmQuery 对象不能通过之前将其分配给备用变量来“快照”扩展它,对于 RealmResults 对象来说情况并非如此。所以:

RealmResults<Obj> widerResults = realmInstance.where(Obj.class).in("id", idArray).findAll;
RealmResults<Obj> narrowerResults = widerResults.where().equalTo("flag", true).findAll;

将提供两个独立的结果集。可以根据我强调的用例使用更广泛的一个——将其视为进一步子查询的起点。在集合中发现的对象的更改本身仍将反射(reflect)在两个集合中。

为所有迷失的灵魂提供答案,以防他们像我们一样陷入困境。

关于java - Java/Android Realm - 保留查询/结果的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51909515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com