【发布时间】:2017-08-24 11:37:21
【问题描述】:
从我的 Realm 表中查询数据时,我的行为非常奇怪。
示例
我有一个名为 OrderItem 的对象,定义如下:
public class OrderItem extends RealmObject{
@PrimaryKey
@Index
private long id;
//the rest of the fields here
//then getters and setters as usual
}
这个问题非常难以预测;因为有时:
RealmResults<OrderItem> items = realm.where(OrderItem.class)
.equalTo("order_id", order_id)
.findAllSorted("id");
返回不完整的结果 - 尤其是 1 行;
这让我发疯了,因为我无法确切知道它是如何返回这样部分结果的;无论我在所述表中有多少行!
注意
不久前,我使用String 类型作为表中的主键,直到我了解到尝试递增值时的想法有多糟糕;所以我切换到 long 类型,这很好;除了现在我从上面的查询中得到部分结果!
非常感谢您在这方面的帮助!任何可以帮助我缓解此问题的想法和提示。
提前致谢!
无敌!
【问题讨论】:
-
您在哪个线程执行查询得到不一致的结果?是在
doInBackground()还是类似的东西?围绕不一致的查询显示代码。 -
对应github问题github.com/realm/realm-java/issues/5153
-
我使用服务(确切地说是后台服务)然后在 serviceHandler 中执行代码;
-
我没有按照 github 上的人的建议使用
realm.refresh()进行测试然后报告 -
我的意思是说我是
testing而不是相反