我在从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");
返回不完整的结果-尤其是一行;
这一直让我发疯,因为我无法确切地找出它是如何返回这样的部分结果的;不管我在所述表中有多少行!
注释
不久前,我使用
String
类型作为表中的主键,直到我了解到在尝试增加值时的想法是多么糟糕;所以我切换到long类型,这很好;但现在我从上面的查询中得到了部分结果!我将非常感谢你在这方面的帮助!任何能帮助我缓解这个问题的想法和建议。
提前谢谢!
永不言败!
最佳答案
切换主键类型后是否清除了数据库?
您可以通过以下方法来完成此操作:
Realm.deleteRealm();
我在realm数据库上也遇到过类似的问题。删除和创建新数据库有帮助。