gpt4 book ai didi

java - 在 couchbase N1Ql @query 中使用 IN 子句或使用 couchbase JPA 中的 findAll(keys)

转载 作者:行者123 更新时间:2023-11-29 04:20:37 24 4
gpt4 key购买 nike

我正在使用 Spring couchbase JPA 并尝试通过提供键列表来获取文档。我的存储库结构看起来像

    public interface EmployeeRepo
extends CouchbasePagingAndSortingRepository<Employee, String>, EmployeeCustomRepo {

我有一个员工 ID 列表来搜索和获取相应的文档。我尝试使用 curdRepository 中的方法

    public List<Employee> findAllById(List<String> empIds) {
return employeeRepo.findAll(empIds);
}

但我得到异常::

org.springframework.dao.InvalidDataAccessResourceUsageException: 
View employee/all does not exist.; nested exception is
com.couchbase.client.java.error.ViewDoesNotExistException: View
employee/all does not exist.

甚至我也尝试将我的键列表包装到一个 Iterable 对象中。但异常保持不变。

    public List<Employee> findAllById(List<String> empIds) {
Iterable<String> itrKeys = empIds;
return employeeRepo.findAll(itrKeys);
}

此外,我尝试将 N1QL 与@query over 方法一起使用

      @Query("#{#n1ql.selectEntity} WHERE meta().id IN $ids AND #{#n1ql.filter}")
Collection<ProductCopy> findAllById(@Param("ids") JsonArray ids);

我将键列表转换为 JsonArray。和上面的 findAllById() 方法不会抛出任何异常,但即使我有匹配的键也不会给出任何文档。

      @Query("#{#n1ql.selectEntity} USE KEYS ($ids) ")
Collection<ProductCopy> findByIdIn(@Param("ids") JsonArray ids);

在执行 findByIdIn() 时我得到了这个异常n1ql 错误:{"msg":"主键丢失或无效。

My question is why findAll(Iterable id)/findAll(List id) is not working,when findOne(String id) works smooth and how do I create a parameterized N1QL query which can take multiple items in an IN statement?

最佳答案

尝试添加@N1qlPrimaryIndexed 和@ViewIndexed 注释,如下例所示:

@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "businessUnity")
public interface BusinessUnityRepository extends CouchbaseRepository<BusinessUnity, String>{

List<BusinessUnity> findByCompanyId(String companyId);

}

另外,你也可以查看这个教程:

https://blog.couchbase.com/couchbase-spring-boot-spring-data/

关于java - 在 couchbase N1Ql @query 中使用 IN 子句或使用 couchbase JPA 中的 findAll(keys),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49449420/

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