gpt4 book ai didi

java - Realm 异常 : java. lang.UnsupportedOperationException:缺少 Not 参数

转载 作者:太空宇宙 更新时间:2023-11-04 12:19:16 26 4
gpt4 key购买 nike

我有一个 Realm 数据库,我想执行如下查询

  • 我有一个对象列表,主键是 Id 字段。
  • 现在我有一个 Id 列表,我想获取不存在的对象列表列表中有 id。

示例:

  • 在数据库中我有一个列表:1,2,3,....9。
  • 我的列表 ID 是:1,2,3。
  • 我想要得到 4,5,6...9。

所以我做了如下查询:

protected <T extends RealmObject> List<T> getListNotContainIds(Class<T> model, List<Long> idList, String fieldName) {
checkValueOfPortalRealm();
RealmQuery<T> query = portalRealmInstance.where(model);
if (idList != null) {
query.not().beginGroup();
for (int i = 0; i < idList.size(); i++) {
if (i == 0) {
query.equalTo(fieldName, idList.get(i));
} else {
query.or().equalTo(fieldName, idList.get(i));
}
}
query.endGroup();
}
return query.findAll();
}

然后,我得到了异常(exception):.

java.lang.UnsupportedOperationException: Missing argument to Not at io.realm.internal.TableQuery.validateQuery(TableQuery.java:94) at io.realm.internal.TableQuery.findAll(TableQuery.java:449) at io.realm.RealmQuery.findAll(RealmQuery.java:1434)

我的查询有一些问题,有人可以帮助纠正它吗?

最佳答案

你应该这样做:

protected <T extends RealmObject> List<T> getListNotContainIds(Class<T> model, List<Long> idList, String fieldName) {
checkValueOfPortalRealm();
RealmQuery<T> query = portalRealmInstance.where(model);
if(idList != null && idList.size() > 0) {
boolean isFirst = true;
query = query.beginGroup();
for (long id : idList) {
if(!isFirst) {
query = query.or();
}
query = query.notEqualTo(fieldName, id);
isFirst = false;
}
query = query.endGroup();
}
return query.findAll();
}

关于java - Realm 异常 : java. lang.UnsupportedOperationException:缺少 Not 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39031301/

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