一起使用 .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 请求此功能。请点赞!
我正在使用一系列 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 请求此功能。请点赞!