java - Realm 查询 : do I need to reassign the result of a query operator to the query object every time?

标签 java android realm

我经常看到这样的代码 fragment :

public RealmResults<MyObject> getMyObjects(List<Integer> ids) {
    Realm realm = null;
    try {
        realm = Realm.getDefaultInstance();
        RealmQuery<MyObject> query = realm.where(MyObject.class);
        for (int i=0; i< ids.size(); i++) {
            query = query.equalTo("id", ids.get(i));
            if (i != ids.size() -1) {
                query = query.or();
            }
        }
        return query.findAll();
    } finally {
        if (realm != null) realm.close();
    }
}

真的有必要将查询运算符的输出重新分配给 RealmQuery 对象吗?其他 fragment 会达到相同的结果吗? (提示:我在调用 .equalTo().or() 之前删除了 query =)

public RealmResults<MyObject> getMyObjects(List<Integer> ids) {
    Realm realm = null;
    try {
        realm = Realm.getDefaultInstance();
        RealmQuery<MyObject> query = realm.where(MyObject.class);
        for (int i=0; i< ids.size(); i++) {
            query.equalTo("id", ids.get(i));
            if (i != ids.size() -1) {
                query.or();
            }
        }
        return query.findAll();
    } finally {
        if (realm != null) realm.close();
    }
}

最佳答案

该查询的功能本质上类似于构建器,因此实际上,返回的构建器的状态设置为给定条件。这意味着该分配是可选的。

这就是像下面这样的结构的查询可以工作的原因:

query.equalTo(...).equalTo(...).beginGroup()....endGroup().findAll()

返回的参数是this,而不是新的RealmQuery。

关于java - Realm 查询 : do I need to reassign the result of a query operator to the query object every time?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39160737/

相关文章:

java - 退出 Jframe 窗口时出错

java - 如何通过 RestTemplate 客户端和服务器将图像上传到 Server()

java - Ant 警告 : Implicitly compiled files were not subject to annotation processing

android - 如何使用 Stetho 查看 android 中的 Realm 数据库表?

android - 如何在 Android 中正确使用预填充的 Realm 数据库?

ios - 我可以在 Realm for Swift 中将 RealmObject 序列化为 JSON 或 NSDictionary 吗?

java - 将字符串列表传递到声明的类文件

android - Dagger 可以在 Android 中执行 View 对象的注入(inject)吗

Android:在我的程序中处理 SQLite 数据库

android - 无法解析 BottomNavigationView 中的方法 'setShiftingMode(Boolean)'