Java Couchbase&;Spring查询错误:";返回基元类型的查询应只返回1个结果,即got X";

Java Couchbase&;Spring查询错误:";返回基元类型的查询应只返回1个结果,即got X";,java,spring-boot,couchbase,spring-data-couchbase,Java,Spring Boot,Couchbase,Spring Data Couchbase,在我们的springboot2.0.4.RELEASE应用程序中,我们使用Couchbase 5.5.1版3511和spring 我们向存储库界面添加了一个新的删除方法: public interface CatRepository extends CouchbaseRepository<Cat, String> { long deleteAllByName(String name); 我们还尝试更改deleteAllByName(字符串名)的返回类型将成为void,但其结果

在我们的
springboot2.0.4.RELEASE
应用程序中,我们使用
Couchbase 5.5.1版3511
spring

我们向存储库界面添加了一个新的删除方法:

public interface CatRepository extends CouchbaseRepository<Cat, String> {

  long deleteAllByName(String name);
我们还尝试更改
deleteAllByName(字符串名)的返回类型
将成为
void
,但其结果相同

在pom中,以下是客户端版本:

        <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-couchbase</artifactId>
        <version>3.0.9.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0.2</version>
    </dependency>

    <dependency>
        <groupId>com.couchbase.client</groupId>
        <artifactId>couchbase-client</artifactId>
        <version>1.4.13</version>
    </dependency>

org.springframework.data
spring数据库
3.0.9.1发布
javax.persistence
持久性api
1.0.2
com.couchbase.client
couchbase客户端
1.4.13

据我所知,您必须返回要删除的对象:

@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "maintenanceSchedule")
public interface MaintenanceScheduleRepository extends CouchbasePagingAndSortingRepository<MaintenanceSchedule, String> {

    List<MaintenanceSchedule> deleteByCompanyIdAndMaintenancePlanId(String companyId, String maintenancePlanId);

    List<MaintenanceSchedule> deleteByCompanyIdAndResourceIdAndMaintenancePlanIdIn(String companyId, String resourceId,
                                                                               List<String> maintenancePlanIds);

}
@N1qlPrimaryIndexed
@视图索引(designDoc=“maintenanceSchedule”)
公共接口维护ScheduleRepository扩展了CouchBasePaging和SortingRepository{
列出DeleteByCompanyId和maintenancePlanId(字符串companyId,字符串maintenancePlanId);
列出DeleteByCompanyId、resourceId和MaintenancePlanId(字符串companyId、字符串resourceId、,
列出维护计划ID);
}

如果不需要删除的对象,最好的方法是直接执行N1QL查询。

FYI Spring Data Couchbase不使用JPA API。如果它这样做了,它将成为Spring数据JPA的一部分,但事实并非如此。效果很好。十倍!。我添加了
列表
返回类型,它成功了。
@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "maintenanceSchedule")
public interface MaintenanceScheduleRepository extends CouchbasePagingAndSortingRepository<MaintenanceSchedule, String> {

    List<MaintenanceSchedule> deleteByCompanyIdAndMaintenancePlanId(String companyId, String maintenancePlanId);

    List<MaintenanceSchedule> deleteByCompanyIdAndResourceIdAndMaintenancePlanIdIn(String companyId, String resourceId,
                                                                               List<String> maintenancePlanIds);

}