不支持 Java, Azure Cosmos 对"null"值的查询



我正在java中查询NULL值(在cosmos文档db上),但其抛出错误,以下是语法:

import com.azure.cosmos.models.CosmosQueryRequestOptions;
import com.azure.spring.data.cosmos.core.generator.FindQuerySpecGenerator;
import com.azure.cosmos.models.SqlQuerySpec;
import com.azure.spring.data.cosmos.core.query.CosmosQuery;
import com.azure.spring.data.cosmos.core.query.Criteria;
import com.azure.spring.data.cosmos.core.query.CriteriaType;
import org.springframework.data.repository.query.parser.Part;
import java.util.Arrays;
Criteria criteria = Criteria.getInstance(CriteriaType.IS_EQUAL,
"tripId",
new ArrayList(Arrays.asList(null)),
Part.IgnoreCaseType.NEVER);
CosmosQuery documentQuery = new CosmosQuery(criteria);
SqlQuerySpec sqlQuerySpec = new FindQuerySpecGenerator().generateCosmos(documentQuery);

这里有例外:线程"main"异常java.lang.NullPointerExceptionjava.util.Objects.requireNonNull (Objects.java: 203)java.util.Arrays ArrayList美元。(Arrays.java: 3813)java.util.Arrays.asList (Arrays.java: 3800)

解决方案:

ArrayList<Object> emptyList= new ArrayList<Object>();
Criteria criteria = Criteria.getInstance(CriteriaType.IS_NULL,
"tripId",
emptyList,
Part.IgnoreCaseType.NEVER);

CosmosQuery documentQuery = new CosmosQuery(criteria);
SqlQuerySpec sqlQuerySpec = new FindQuerySpecGenerator().generateCosmos(documentQuery);

最新更新