一起使用 .or 和 .link 的查询不起作用

Query using .or and .link together doesn't work

我正在使用一系列 if 语句在 Android 上构建一个 ObjectBox 查询:

QueryBuilder<CustomerData> qb = CustomersBox.query();
            qb.contains(CustomerData_.NAME, SearchTerm);
            if (SearchTerms.contains("AGENT"))
                qb.or().contains(CustomerData_.AGENT, SearchTerm);
            if (SearchTerms.contains("CUSTNUM"))
                qb.or().contains(CustomerData_.CUSTNUM, SearchTerm);

如果保持如上,使用简单的 qb.build().find();

就可以正常工作

现在我链接到 OneToMany 对象以获取更多搜索词:

            if (SearchTerms.contains("DELIVERYNOTES")) {
                qb.or().link(CustomerData_.Products).contains(CustomerProduct_.DELY1, SearchTerm);

然而,它死于 IllegalStateException: An operator is pending. Use operators like and() and or() only between two conditions.

是否不能使链接查询成为条件?

是的,目前不支持。调用 QueryBuilder.link(property) returns 一个单独的 QueryBuilder 实例。

请参阅 https://github.com/objectbox/objectbox-java/issues/497 请求此功能。请点赞!